Eu tenho um ponto de extremidade da API que retorna algumas estatísticas. Atualmente, a resposta se parece com:
Opção 1:
{
"stats": [
{
"name": "some-stats-key1",
"value": 10
},
{
"name": "some-stats-key2",
"value": 20
}
],
... other keys
}
Mas isso parece um pouco complexo e eu como fazê-lo:
Opção 2:
{
"stats": {
"some-stats-key1": 10,
"some-stats-key2": 20
}
... other keys
}
Entendo que a opção 1 é mais fácil de ser estendida, mas menos confortável para os usuários. Que outros problemas posso enfrentar usando uma dessas opções? Ou devo criar uma solução híbrida como:
Opção 3:
{
"stats": {
"some-stats-key1": {
"name": "some-stats-key1",
"value": 10
},
"some-stats-key2": {
"name": "some-stats-key2",
"value": 20
},
},
... other keys
}
As chaves "some-stats-key1" e "some-stats-key2" são apenas valores internos e espera-se que o usuário da API as mapeie em nomes legíveis usando a documentação. Todas as chaves são únicas.
A ordem das "estatísticas" não é importante.
O caso de uso típico é apenas para obter todas as estatísticas, combinar chaves com nomes legíveis e mostrar como uma tabela em uma página da web. Mas atualmente não posso dizer se ninguém precisará apenas de uma parte das estatísticas posteriormente.
Existe uma prática recomendada para esse problema?
Array.forEach
e outras Array
funções. Seus outros exemplos adicionarão complexidade extra a operações do tipo array, o que poderia dificultar a vida de seus clientes