Разработка API - наилучшая практика json_api - не возвращать данные
У меня есть приложение Rails, которое также имеет API. Я пытался следовать http://jsonapi.org/ для общей структуры, но я не могу найти какие-либо рекомендации, когда дело доходит до результата без каких-либо данных. У меня например есть конечная точка, которая выглядит так:
https://[root]/api/apps/34/localized_strings?from_date=1330776000
куда from_date
является меткой времени Unix, если сервер обновил или обновил данные, основанные на этом значении даты, я возвращаю все данные, там нет обновлений, я не хочу возвращать никаких данных. И мне интересно, как лучше всего это сделать. Текущий результат выглядит так:
{
"data": []
}
Было бы лучше или более условно, основываясь на http://jsonapi.org/ вместо этого возвращать статус "status": 204
в случаях, когда нет изменений или данных?
2 ответа
Согласно спецификации, ответ, представляющий пустую коллекцию, будет:
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"links": {
"self": "http://example.com/articles"
},
"data": []
}
Сервер ДОЛЖЕН ответить на успешный запрос на выборку отдельного ресурса с помощью объекта ресурса или null
предоставляется в качестве основных данных ответного документа.
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{
"links": {
"self": "http://example.com/articles/1/author"
},
"data": null
}
Просто вернись head :no_content
, так что рельсы вернут 204 кода состояния с пустым содержимым
Вот пример для уничтожения
def destroy
# Destroy stuff
# Return 204, no content
head :no_content
end