Ho un endpoint dell'API REST in cui il chiamante può fornire alcuni filtri opzionali per i risultati.
GET api/inventory
Ad esempio, un membro oggetto di una richiesta GET può apparire come il seguente
{
"books" : [
{
"id" : 1,
"description": "this is book 1"
}
] ,
"pencils" : [
{
"id" : 1,
"description": "this is pencil 1"
}
]
}
....
Ora, questo potrebbe avere filtri opzionali
GET api/inventory?id=true&description=false
Poiché i consumatori possono solo volere gli id, quindi abbiamo un solo campo, quindi non abbiamo davvero bisogno di un oggetto per ogni entità.
In questo caso, è "best practice" per
- Mantieni la stessa forma di dati, ma includi solo il campo singolo
es
{
"books" : [
{
"id" : 1
}
]
"pencils" : [
{
"id" : 1
}
]
}
-
Dato che c'è un solo campo, "appiattisci" l'oggetto, così ora abbiamo qualcosa come
{ "libri": [1], "matite": [1] }
L'opzione 1. è buona poiché mantiene sempre la stessa forma, ma 2. è più compatta quando abbiamo una sola proprietà per ogni oggetto.
So che in entrambi i casi funzionerà fintanto che sarà documentato, ma ti starai chiedendo se c'è qualche "buona pratica" accettata?
Grazie in anticipo per eventuali suggerimenti.