Разработка 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
Другие вопросы по тегам