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