Ho un endpoint API che restituisce alcune statistiche. Attualmente la risposta è la seguente:
Opzione 1:
{
"stats": [
{
"name": "some-stats-key1",
"value": 10
},
{
"name": "some-stats-key2",
"value": 20
}
],
... other keys
}
Ma questo sembra un po 'complesso e io come renderlo simile:
Opzione 2:
{
"stats": {
"some-stats-key1": 10,
"some-stats-key2": 20
}
... other keys
}
Capisco che l'Opzione 1 sia più facile da estendere, ma meno comoda per gli utenti. Quali altri problemi posso affrontare utilizzando una di queste opzioni? O dovrei creare una soluzione ibrida come:
Opzione 3:
{
"stats": {
"some-stats-key1": {
"name": "some-stats-key1",
"value": 10
},
"some-stats-key2": {
"name": "some-stats-key2",
"value": 20
},
},
... other keys
}
I tasti "some-stats-key1" e "some-stats-key2" sono solo valori interni e l'utente API previsto li mapperà in nomi leggibili usando la documentazione. Tutte le chiavi sono uniche.
L'ordine di "statistiche" non è importante.
Il tipico caso d'uso è solo quello di ottenere tutte le statistiche, chiavi di corrispondenza con nomi leggibili e mostrare come tabella su una pagina web. Ma al momento non posso dire se nessuno avrà bisogno solo di una parte delle statistiche più tardi.
Esiste una best practice per questo problema?