Variabili di input per una richiesta API REST ONTAP
È possibile controllare la modalità di elaborazione di una chiamata API attraverso parametri e variabili impostati nella richiesta HTTP.
Metodi HTTP
I metodi HTTP supportati dall'API REST di ONTAP sono illustrati nella seguente tabella.
|
|
Non tutti i metodi HTTP sono disponibili in ogni endpoint REST. Inoltre, È possibile utilizzare PATCH e DELETE in una raccolta. Per ulteriori informazioni, consulta la sezione riferimenti a oggetti e accesso. |
| Metodo HTTP | Descrizione |
|---|---|
OTTIENI |
Recupera le proprietà dell'oggetto su un'istanza o una raccolta di risorse. |
POST |
Crea una nuova istanza di risorsa in base all'input fornito. |
PATCH |
Aggiorna un'istanza di risorsa esistente in base all'input fornito. |
ELIMINARE |
Elimina un'istanza di risorsa esistente. |
TESTA |
Emette in modo efficace una richiesta GET ma restituisce solo le intestazioni HTTP. |
OPZIONI |
Determinare quali metodi HTTP sono supportati in un endpoint specifico. |
Variabili di percorso
Il percorso dell'endpoint utilizzato con ogni chiamata API REST può includere vari identificatori. Ciascun ID corrisponde a una specifica istanza di risorsa. Alcuni esempi comprendono ID del cluster e ID SVM.
Intestazioni delle richieste
È necessario includere diverse intestazioni nella richiesta HTTP.
- Tipo di contenuto
-
Se il corpo della richiesta include JSON, questa intestazione deve essere impostata su
application/json. - Accettare
-
Questa intestazione deve essere impostata su
application/hal+json. Se invece è impostato suapplication/jsonNessuno dei collegamenti HAL verrà restituito, ad eccezione di un collegamento necessario per recuperare il successivo batch di record. Se l'intestazione è diversa da questi due valori, il valore predefinito dicontent-typel'intestazione nella risposta saràapplication/hal+json. - Autorizzazione
-
L'autenticazione di base deve essere impostata con il nome utente e la password codificati come stringa base64. Ad esempio:
Authorization: Basic YWRtaW46cGV0ZXJzb24=.
Corpo della richiesta
Il contenuto del corpo della richiesta varia in base alla chiamata specifica. Il corpo della richiesta HTTP è costituito da uno dei seguenti elementi:
-
Oggetto JSON con variabili di input
-
Oggetto JSON vuoto
Filtraggio degli oggetti
Quando si esegue una chiamata API con il metodo GET, è possibile limitare o filtrare gli oggetti restituiti in base a qualsiasi attributo utilizzando un parametro di query.
Una serie di uno o più parametri può essere aggiunta alla stringa URL che inizia dopo ? carattere. Se viene fornito più di un parametro, i parametri di query vengono suddivisi in base a. & carattere. Ciascun tasto e valore nel parametro vengono suddivisi in = carattere.
Ad esempio, è possibile specificare un valore esatto da corrispondere utilizzando il segno di uguale:
<field>=<value>
Per una query più complessa, l'operatore aggiuntivo viene posizionato dopo il segno di uguale. Ad esempio, per selezionare l'insieme di oggetti in base a un campo specifico maggiore o uguale a un valore, la query sarà:
<field>=>=<value>
Oltre agli esempi forniti in precedenza, sono disponibili operatori aggiuntivi per restituire oggetti su un intervallo di valori. Nella tabella seguente è riportato un riepilogo degli operatori di filtraggio supportati dall'API REST ONTAP.
|
|
Tutti i campi non impostati sono generalmente esclusi dalle query corrispondenti. |
Operatore |
Descrizione |
= |
Uguale a. |
< |
Inferiore a. |
> |
Maggiore di |
⇐ |
Minore o uguale a. |
>= |
Maggiore o uguale a. |
! |
Non uguale a. |
* |
Goloso carattere jolly |
È inoltre possibile restituire un insieme di oggetti in base all'impostazione o meno di un campo specifico mediante l' null parola chiave o relativa negazione !null come parte della query.
Di seguito sono riportati alcuni esempi dei flussi di lavoro delle API REST in questo sito.
-
Filtro basato su
statevariabile per selezionare i dischi di riserva.
Richiesta di campi oggetto specifici
Per impostazione predefinita, l'emissione di una chiamata API con GET restituisce solo gli attributi che identificano in modo univoco lo o gli oggetti, insieme a un collegamento automatico HAL. Questo insieme minimo di campi funge da chiave per ciascun oggetto e varia in base al tipo di oggetto. È possibile selezionare altre proprietà dell'oggetto utilizzando fields eseguire la query del parametro nei seguenti modi:
-
Campi comuni o standard
Specificare
fields=*`per recuperare i campi oggetto più comunemente utilizzati. Questi campi vengono generalmente mantenuti nella memoria del server locale o richiedono un'elaborazione ridotta per l'accesso. Si tratta delle stesse proprietà restituite per un oggetto dopo l'utilizzo DI GET con una chiave UUID (URL PATH Key). -
Tutti i campi
Specificare
fields=**per recuperare tutti i campi oggetto, inclusi quelli che richiedono un'ulteriore elaborazione del server per l'accesso. -
Selezione di campi personalizzati
Utilizzare
fields=<field_name>per specificare il campo esatto desiderato. Quando si richiedono più campi, i valori devono essere separati utilizzando virgole senza spazi.Come Best practice, devi sempre identificare i campi specifici che desideri. Recuperare solo il set di campi comuni o tutti i campi quando necessario. Quali campi sono classificati come comuni e restituiti utilizzando fields=*, È determinato da NetApp in base all'analisi interna delle performance. La classificazione di un campo potrebbe cambiare nelle release future.
Ordinamento degli oggetti nel set di output
I record di una raccolta di risorse vengono restituiti nell'ordine predefinito definito dall'oggetto. È possibile modificare l'ordine utilizzando order_by parametro di query con il nome del campo e la direzione di ordinamento come segue:
order_by=<field name> asc|desc
Ad esempio, è possibile ordinare il campo tipo in ordine decrescente seguito da id in ordine crescente:
order_by=type desc, id asc
Tenere presente quanto segue:
-
Se si specifica un campo di ordinamento ma non si fornisce una direzione, i valori vengono ordinati in ordine crescente.
-
Quando si includono più parametri, è necessario separare i campi con una virgola.
Impaginazione durante il recupero di oggetti in una raccolta
Quando effettui una chiamata API tramite GET per accedere a una raccolta di oggetti dello stesso tipo, ONTAP cerca di restituire il maggior numero possibile di oggetti in base a due vincoli (numero massimo di oggetti, tempo impiegato per recuperarli). Puoi controllare ciascuno di questi utilizzando parametri di query aggiuntivi nella richiesta. Il primo vincolo raggiunto per una specifica richiesta GET interrompe la richiesta e quindi limita il numero di record restituiti. Se una richiesta termina prima di aver iterato su tutti gli oggetti, la risposta contiene il link necessario per recuperare il batch successivo di record.
|
|
Se una chiamata API restituisce zero record, senza alcun next link, questo potrebbe indicare che si è verificato un timeout prima che fosse possibile recuperare dei record. In questo caso, puoi riprovare la richiesta usando un valore return_timeout più grande o un valore max_records più piccolo (o entrambi).
|
- Limitazione del numero di oggetti
-
Per impostazione predefinita, ONTAP restituisce un massimo di 10,000 oggetti per una richiesta GET. È possibile modificare questo limite utilizzando
max_recordsparametro di query. Ad esempio:max_records=20Il numero di oggetti effettivamente restituiti può essere inferiore al massimo effettivo, in base al relativo vincolo temporale e al numero totale di oggetti nel sistema.
- Limitare il tempo impiegato per recuperare gli oggetti
-
Per impostazione predefinita, ONTAP restituisce il maggior numero di oggetti possibile entro il tempo consentito per la richiesta GET. Il timeout predefinito è 15 secondi. È possibile modificare questo limite utilizzando
return_timeoutparametro di query. Ad esempio:return_timeout=5Il numero di oggetti effettivamente restituiti può essere inferiore al massimo effettivo, in base al vincolo relativo al numero di oggetti e al numero totale di oggetti nel sistema.
- Restringimento del set di risultati
-
Se necessario, è possibile combinare questi due parametri con altri parametri di query per restringere il set di risultati. Ad esempio, quanto segue restituisce fino a 10 eventi ems generati dopo il tempo specificato:
time=> 2018-04-04T15:41:29.140265Z&max_records=10È possibile inviare più richieste per scorrere gli oggetti. Ogni successiva chiamata API deve utilizzare un nuovo valore temporale basato sull'ultimo evento dell'ultimo set di risultati.
Proprietà delle dimensioni
I valori di input utilizzati con alcune chiamate API e alcuni parametri di query sono numerici. Invece di fornire un numero intero in byte, è possibile utilizzare un suffisso come mostrato nella tabella seguente.
| Suffisso | Descrizione |
|---|---|
KB |
KB kilobyte (1024 byte) o kibyte |
MB |
MB Megabyte (KB x 1024 byte) o megibyte |
GB |
GB Gigabyte (MB x 1024 byte) o gibibyte |
TB |
TB terabyte (GB x 1024 byte) o tebibyte |
PB |
PB petabyte (TB x 1024 byte) o pebibyte |