SfondoQuali sono le migliori pratiche per aggiungere metadati a una risposta JSON RESTful?
Stiamo costruendo un'API riposante che deve restituire oggetti dati come JSON. Nella maggior parte dei casi va bene solo restituire l'oggetto dati, ma in alcuni casi, f.ex. impaginazione o validazione, dobbiamo aggiungere alcuni metadati alla risposta.
Quello che abbiamo finora
Abbiamo avvolto tutte le risposte JSON come in questo esempio:
{
"metadata" :{
"status": 200|500,
"msg": "Some message here",
"next": "http://api.domain.com/users/10/20"
...
},
"data" :{
"id": 1001,
"name": "Bob"
}
}
Pro
- possiamo aggiungere metadati utili alla risposta
Contro
- Nella maggior parte dei casi non abbiamo bisogno del campo di metadati, e si aggiunge complessità al formato JSON
- Dal momento che non è un oggetto di dati più, ma più come una risposta avvolto , non possiamo usare immediatamente la risposta in f.ex backbone.js senza estrarre l'oggetto dati.
Domanda
Qual è la best practice per aggiungere i metadati a una risposta JSON?
UPDATE
quello che ha così lontano da risposte di seguito:
- Rimuovere il
metadata.status
un rendimento del codice di risposta HTTP nel protocollo http invece (200, 500 ... - Aggiungere un messaggio di errore al corpo di un risponditore http 500
- Per l'impaginazione, è naturale avere alcuni metadati che descrivono la struttura di impaginazione e dati annidati in quella struttura
- piccola quantità di metadati possono essere aggiunti alla intestazione http (X-qualcosa)
Sei consapevole che il tuo esempio non è JSON? – JeremyP
grazie, è aggiornato –
Puoi approfondire i tuoi potenziali casi d'uso e perché il codice di stato HTTP e l'impostazione di intestazioni di risposta appropriate non sarebbero adatti? – Charlie