Skip to main content
ONTAP Select
È disponibile una versione più recente di questo prodotto.
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Transazione API di richiesta e risposta per ONTAP Select

Ogni chiamata all'API Deploy viene eseguita come una richiesta HTTP alla macchina virtuale Deploy, che genera una risposta associata al client. Questa coppia richiesta/risposta è considerata una transazione API. Prima di utilizzare l'API Deploy, è necessario acquisire familiarità con le variabili di input disponibili per controllare una richiesta e il contenuto dell'output della risposta.

Variabili di input che controllano una richiesta API

È possibile controllare il modo in cui viene elaborata una chiamata API tramite i parametri impostati nella richiesta HTTP.

Intestazioni di richiesta

È necessario includere diverse intestazioni nella richiesta HTTP, tra cui:

  • content-type Se il corpo della richiesta include JSON, questa intestazione deve essere impostata su application/json.

  • accetta Se il corpo della risposta includerà JSON, questa intestazione deve essere impostata su application/json.

  • autorizzazione L'autenticazione di base deve essere impostata con il nome utente e la password codificati in una stringa base64.

Corpo della richiesta

Il contenuto del corpo della richiesta varia a seconda della chiamata specifica. Il corpo della richiesta HTTP è costituito da uno dei seguenti elementi:

  • Oggetto JSON con variabili di input (ad esempio, il nome di un nuovo cluster)

  • Vuoto

Filtra oggetti

Quando si esegue una chiamata API che utilizza GET, è possibile limitare o filtrare gli oggetti restituiti in base a qualsiasi attributo. Ad esempio, è possibile specificare un valore esatto da ricercare:

<field>=<query value>

Oltre alla corrispondenza esatta, sono disponibili altri operatori per restituire un set di oggetti su un intervallo di valori. ONTAP Select supporta gli operatori di filtro mostrati di seguito.

Operatore Descrizione

=

Uguale a

<

Meno di

>

Maggiore di

Minore o uguale a

>=

Maggiore o uguale a

O

!

Non uguale a

*

Jolly avido

È anche possibile restituire un set di oggetti in base al fatto che un campo specifico sia impostato o meno utilizzando la parola chiave null o la sua negazione (!null) come parte della query.

Selezione dei campi oggetto

Per impostazione predefinita, l'emissione di una chiamata API tramite GET restituisce solo gli attributi che identificano in modo univoco l'oggetto o gli oggetti. Questo set minimo di campi funge da chiave per ciascun oggetto e varia in base al tipo di oggetto. È possibile selezionare proprietà aggiuntive dell'oggetto utilizzando il parametro di query fields nei seguenti modi:

  • Campi economici Specificare fields=* per recuperare i campi oggetto che sono mantenuti nella memoria del server locale o per i quali è richiesta poca elaborazione per accedervi.

  • Campi costosi Specificare fields=** per recuperare tutti i campi dell'oggetto, compresi quelli che richiedono un'ulteriore elaborazione del server per accedervi.

  • Selezione campo personalizzato Usa fields=FIELDNAME per specificare il campo esatto desiderato. Quando si richiedono più campi, i valori devono essere separati da virgole senza spazi.

Suggerimento Come buona pratica, dovresti sempre identificare i campi specifici che desideri. Recupera il set di campi economici o costosi solo quando necessario. La classificazione di campi economici e costosi è determinata da NetApp in base all'analisi interna delle prestazioni. La classificazione di un determinato campo può cambiare in qualsiasi momento.

Ordina gli oggetti nel set di output

I record in una raccolta di risorse vengono restituiti nell'ordine predefinito definito dall'oggetto. È possibile modificare l'ordine utilizzando il parametro di query order_by 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

Quando si includono più parametri, è necessario separare i campi con una virgola.

Paginazione

Quando si effettua una chiamata API tramite GET per accedere a una raccolta di oggetti dello stesso tipo, per impostazione predefinita vengono restituiti tutti gli oggetti corrispondenti. Se necessario, è possibile limitare il numero di record restituiti utilizzando il parametro di query max_records nella richiesta. Ad esempio:
max_records=20

Se necessario, è possibile combinare questo parametro con altri parametri di query per restringere il set di risultati. Ad esempio, il seguente comando restituisce fino a 10 eventi di sistema generati dopo l'intervallo di tempo specificato:
time⇒ 2019-04-04T15:41:29.140265Z&max_records=10

È possibile inviare più richieste per scorrere gli eventi (o qualsiasi tipo di oggetto). Ogni successiva chiamata API dovrebbe utilizzare un nuovo valore temporale basato sull'evento più recente nell'ultimo set di risultati.

Interpretare una risposta API

Ogni richiesta API genera una risposta al client. È possibile esaminare la risposta per determinare se è andata a buon fine e recuperare dati aggiuntivi se necessario.

Codice di stato HTTP

Di seguito sono descritti i codici di stato HTTP utilizzati dall'API REST Deploy.

Codice Senso Descrizione

200

OK

Indica il successo delle chiamate che non creano un nuovo oggetto.

201

Creato

Un oggetto è stato creato correttamente; l'intestazione della risposta sulla posizione include l'identificatore univoco per l'oggetto.

202

Accettato

È stato avviato un processo in background di lunga durata per eseguire la richiesta, ma l'operazione non è ancora stata completata.

400

Brutta richiesta

L'input della richiesta non è riconosciuto o è inappropriato.

403

Vietato

L'accesso è negato a causa di un errore di autorizzazione.

404

Non trovato

La risorsa a cui si fa riferimento nella richiesta non esiste.

405

Metodo non consentito

Il verbo HTTP nella richiesta non è supportato per la risorsa.

409

Conflitto

Il tentativo di creare un oggetto non è riuscito perché l'oggetto esiste già.

500

Errore interno

Si è verificato un errore interno generale sul server.

501

Non implementato

L'URI è noto ma non è in grado di eseguire la richiesta.

Intestazioni di risposta

Nella risposta HTTP generata dal server Deploy sono incluse diverse intestazioni, tra cui:

  • request-id A ogni richiesta API riuscita viene assegnato un identificatore di richiesta univoco.

  • posizione Quando viene creato un oggetto, l'intestazione posizione include l'URL completo del nuovo oggetto, incluso l'identificatore univoco dell'oggetto.

Corpo della risposta

Il contenuto della risposta associata a una richiesta API varia in base all'oggetto, al tipo di elaborazione e all'esito positivo o negativo della richiesta. Il corpo della risposta viene visualizzato in formato JSON.

  • Singolo oggetto. Un singolo oggetto può essere restituito con un set di campi in base alla richiesta. Ad esempio, è possibile utilizzare GET per recuperare proprietà selezionate di un cluster utilizzando l'identificatore univoco.

  • Oggetti multipli È possibile restituire più oggetti da una raccolta di risorse. In tutti i casi, viene utilizzato un formato coerente, con num_records Indica il numero di record e record contenenti un array delle istanze dell'oggetto. Ad esempio, è possibile recuperare tutti i nodi definiti in un cluster specifico.

  • Oggetto Job: se una chiamata API viene elaborata in modo asincrono, viene restituito un oggetto Job che ancora l'attività in background. Ad esempio, la richiesta POST utilizzata per distribuire un cluster viene elaborata in modo asincrono e restituisce un oggetto Job.

  • Oggetto Errore Se si verifica un errore, viene sempre restituito un oggetto Errore. Ad esempio, si riceverà un errore quando si tenta di creare un cluster con un nome già esistente.

  • Vuoto In alcuni casi, non vengono restituiti dati e il corpo della risposta è vuoto. Ad esempio, il corpo della risposta è vuoto dopo aver utilizzato DELETE per eliminare un host esistente.