Caratteristiche operative di base
Sebbene REST stabilisca un insieme comune di tecnologie e best practice, i dettagli di ciascuna API possono variare in base alle scelte progettuali.
Transazione API di richiesta e risposta
Ogni chiamata API REST viene eseguita come una richiesta HTTP al sistema SnapCenter Server, che genera una risposta associata al client. Questa coppia di richiesta e risposta è considerata una transazione API.
Prima di utilizzare l'API, è necessario acquisire familiarità con le variabili di input disponibili per controllare una richiesta e il contenuto dell'output della risposta.
Supporto per le operazioni CRUD
Ciascuna delle risorse disponibili tramite l'API REST SnapCenter è accessibile in base al modello CRUD:
-
Creare
-
Leggere
-
Aggiornamento
-
Eliminare
Per alcune risorse è supportato solo un sottoinsieme delle operazioni.
Identificatori di oggetti
A ogni istanza o oggetto di risorsa viene assegnato un identificatore univoco al momento della creazione. Nella maggior parte dei casi, l'identificatore è un UUID a 128 bit. Questi identificatori sono univoci a livello globale all'interno di uno specifico SnapCenter Server.
Dopo aver emesso una chiamata API che crea una nuova istanza di oggetto, un URL con l'ID associato viene restituito al chiamante nell'intestazione della posizione della risposta HTTP. È possibile estrarre l'identificatore e utilizzarlo nelle chiamate successive quando si fa riferimento all'istanza della risorsa.
|
Il contenuto e la struttura interna degli identificatori degli oggetti possono cambiare in qualsiasi momento. Si consiglia di utilizzare gli identificatori solo nelle chiamate API applicabili, quando necessario, quando si fa riferimento agli oggetti associati. |
Istanze e raccolte di oggetti
A seconda del percorso della risorsa e del metodo HTTP, una chiamata API può essere applicata a un'istanza di oggetto specifica o a una raccolta di oggetti.
Operazioni sincrone e asincrone
SnapCenter esegue una richiesta HTTP ricevuta da un client in modo sincrono o asincrono.
Elaborazione sincrona
SnapCenter esegue la richiesta immediatamente e risponde con un codice di stato HTTP pari a 200 o 201 se l'operazione ha esito positivo.
Ogni richiesta che utilizza il metodo GET viene sempre eseguita in modo sincrono. Inoltre, le richieste che utilizzano POST sono progettate per essere eseguite in modo sincrono se si prevede che vengano completate in meno di due secondi.
Elaborazione asincrona
Se una richiesta asincrona è valida, SnapCenter crea un'attività in background per elaborare la richiesta e un oggetto processo per ancorare l'attività. Il codice di stato HTTP 202 viene restituito al chiamante insieme all'oggetto del processo. Per determinare se l'operazione è riuscita o meno, è necessario recuperare lo stato del lavoro.
Le richieste che utilizzano i metodi POST e DELETE sono progettate per essere eseguite in modo asincrono se si prevede che impiegheranno più di due secondi per essere completate.
Sicurezza
La sicurezza fornita dall'API REST si basa principalmente sulle funzionalità di sicurezza esistenti disponibili con SnapCenter. L'API utilizza la seguente sicurezza:
Sicurezza del livello di trasporto
Tutto il traffico inviato sulla rete tra il server SnapCenter e il client viene in genere crittografato tramite TLS, in base alle impostazioni di configurazione SnapCenter .
Autenticazione HTTP
A livello HTTP, per le transazioni API viene utilizzata l'autenticazione di base. A ogni richiesta viene aggiunta un'intestazione HTTP con il nome utente e la password in una stringa base64.