Мы создаем Restful API, который должен возвращать объекты данных в формате JSON. В большинстве случаев достаточно просто вернуть объект данных, но в некоторых случаях, например. разбивке на страницы или проверке, нам нужно добавить в ответ метаданные.
Что у нас есть на данный момент
Мы обернули все ответы в формате JSON, как в этом примере:
Код: Выделить всё
{
"metadata" :{
"status": 200|500,
"msg": "Some message here",
"next": "http://api.domain.com/users/10/20"
...
},
"data" :{
"id": 1001,
"name": "Bob"
}
}
- Мы можем добавить полезные метаданные к ответу
- В большинстве случаев нам не нужно поле метаданных, и это усложняет формат json.
- Поскольку это больше не объект данных, а больше похоже на заключенный ответ, мы не можем сразу использовать ответ в f.ex backbone.js без извлечения объекта данных.
Как лучше всего добавлять метаданные в ответ в формате JSON?
ОБНОВЛЕНИЕ
Что я получил из ответов ниже:
- Удалить метаданные.статус вместо этого вернуть код ответа http в
протоколе http (200, 500 ...) - Добавить сообщение об ошибке в текст ответа http 500
- Для нумерации страниц естественно иметь метаданные, сообщающие о структуре нумерации страниц и данных, вложенных в эту структуру.
- Небольшое количество метаданных можно добавить в заголовок http (X-something)
Подробнее здесь: https://stackoverflow.com/questions/829 ... n-response
Мобильная версия