API设计 - json_api最佳实践,不返回任何数据

时间:2016-05-30 08:25:34

标签: ruby-on-rails json api-design json-api

我有一个也有API的Rails应用程序。我一直在尝试关注整个结构的http://jsonapi.org,但是在没有任何数据的情况下,我找不到任何关于结果的指导。例如,我有一个如下所示的端点:

https://[root]/api/apps/34/localized_strings?from_date=1330776000

其中from_date是一个unix时间戳,如果服务器有基于此日期值的更新或更新数据,则返回所有数据,没有更新我想要返回没有数据。我想知道这样做的最佳方法是什么。目前的结果如下:

{
  "data": []
}

基于http://jsonapi.org更好或更传统的是,在没有变化或数据的情况下,返回“状态”状态:204

2 个答案:

答案 0 :(得分:2)

只需返回head :no_content,因此rails将返回204状态代码,内容为空

以下是销毁

的示例
def destroy
  # Destroy stuff

  # Return 204, no content
  head :no_content
end

答案 1 :(得分:0)

According to the specification,表示空集合的响应将是:

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
}