Recupero delle risorse (GET)
Questa pagina mostra esempi di varie richieste GET per il modulo JSON:API.
In tutti gli esempi seguenti non sono richieste intestazioni. Non è richiesta autenticazione se gli utenti anonimi possono accedere alle entità di contenuto. Per le entità di configurazione come i menu, vedi le ultime sezioni.
Nota che in tutti i casi, quando è necessario un id, si tratta sempre dell’uuid dell’entità, non dell’id dell’entità.
Intestazione Accept
Assicurati di inviare sempre l’intestazione accept: Accept: application/vnd.api+json.
curl \
--header 'Accept: application/vnd.api+json' \
....
Esempio GET di base
URL: http://example.com/jsonapi/node/article/{{article_uuid}}
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API di un singolo nodo articolo, inclusi attributi, relazioni e link.
GET più articoli
URL: http://example.com/jsonapi/node/article
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API di massimo 50 articoli, incluso il link al successivo.
GET primi 10 articoli
URL: http://example.com/jsonapi/node/article?page[limit]=10
Risposta
Risposta JSON di massimo 10 articoli, inclusi link al successivo.
GET seconda pagina di 10 articoli
URL: http://example.com/jsonapi/node/article?page[limit]=10&page[offset]=10
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API di massimo 10 articoli, inclusi i link a prev, next, ecc.
Per maggiori informazioni sulla paginazione, vedi: https://www.drupal.org/docs/8/modules/jsonapi/pagination
GET più articoli ordinati
URL: http://example.com/jsonapi/node/article?sort=nid
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API degli articoli, ordinati per nid crescente. Usa &sort=-nid
per ordinarli in ordine decrescente.
Per maggiori informazioni sull’ordinamento, vedi: https://www.drupal.org/node/2803141
GET articolo filtrato per titolo
URL: http://example.com/jsonapi/node/article?filter[article-title][path]=title&filter[article-title][value]={{title_filter}}&filter[article-title][operator]==
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API degli articoli, filtrati in base al valore del campo 'title' corrispondente a '{{title_filter}}'
Per maggiori informazioni sui filtri, vedi: https://www.drupal.org/node/2943641
GET articolo con campo di riferimento entità media field_image url, uri includendo le referenze
Sintassi più recente
URL:
http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image&fields[file--file]=uri,url
Sintassi precedente
URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image,field_image.image,field_image.image.file--file&fields[field_image]=image&fields[file--file]=uri,url
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API delle relazioni di immagine media incluse, corrispondenti al singolo nodo articolo con '{{article_uuid}}'
GET articolo insieme all’intero set di dati correlati (autore, termine di tassonomia, ecc.)
URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&include=uid
Risposta
Risposta HTTP 200. Il corpo della risposta include un oggetto utente contenente tutte le informazioni sull’utente associato. La stessa sintassi funziona anche per altri dati correlati come i termini di tassonomia.
GET articolo con campo di riferimento utente, field_user_ref_example, e il suo profilo, ref_example_profile, (campo di riferimento dentro un campo di riferimento)
URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_user_ref_example,field_user_ref_example.ref_example_profile
Risposta
Risposta HTTP 200. Il corpo della risposta include un oggetto utente contenente tutte le informazioni sull’utente associato e sul suo profilo. La stessa sintassi funziona anche per altri dati correlati che contengono un campo di riferimento.
GET articolo insieme a specifici elementi di dati correlati (autore, termine di tassonomia, ecc.)
URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&fields[user--user]=name,mail&include=uid
Risposta
Risposta HTTP 200. Il corpo della risposta include un oggetto utente contenente i campi specificati nell’oggetto correlato (in questo caso, nome e email dell’autore). La stessa sintassi funziona anche per altri dati correlati come i termini di tassonomia.
GET account utente
URL: http://example.com/jsonapi/user/user?filter[anon][condition][path]=uid&filter[anon][condition][value]=0&filter[anon][condition][operator]=<>
Risposta
Risposta HTTP 200. Il corpo della risposta contiene l’oggetto JSON:API degli account utente nel sistema, escluso l’account utente anonimo. Nota che se desideri ottenere un elenco di tutti gli account utente, devi usare la query sopra, poiché eseguire semplicemente una richiesta GET a /jsonapi/user/user
restituirà un errore HTTP 403.
Recupero entità di configurazione
Poiché le entità di configurazione (menu, tipo di nodo, tour) non sono uguali alle entità di contenuto (nodi, utenti) questo è un po’ più complicato. Attualmente le entità di configurazione sono sola lettura.
Per un test semplice usiamo user-1 e il modulo basic_auth.
- Abilita il modulo basic_auth
- Assumi che il nome di user-1 sia admin e la password admin
Utilizzando il seguente comando verranno elencati i menu.
curl \
--header 'Accept: application/vnd.api+json' \
http://admin:admin@drupal.d8/jsonapi/menu/menu
Articolo da Documentazione di Drupal.