是否只允许返回JSON API集合的ID?

因此,假设我有一个名为articles的资源。这些具有数字ID,您可以通过以下方式访问它们:

GET /articles/1用于特定文章。

我们假设返回的内容如下:

{
  "data": {
    "type": "articles","id": "1","attributes": {
      "title": "JSON:API paints my bikeshed!","body": "A bunch of text here"
    }
  }
}

现在我的问题是如何处理对GET /articles的请求。即如何处理对集合的请求。

您看到,访问本文的正文既缓慢又痛苦。我希望该REST API做的最后一件事实际上是尝试获取所有这些信息。据我所知,JSON API模式似乎假设您始终可以返回全部资源。

在主动不提供获取全部资源的能力的情况下,是否有任何“允许”方式仅返回JSON API下的ID(或部分属性,例如“ title”)?

类似的东西:

GET /articles返回:

{
  "data": [
    {
      "type": "article_snubs","id": 1,"attributes": {
         "title": "JSON:API paints my bikeshed!"
      }
    },{
      "type": "article_snubs","id": 2,"attributes": {
         "title": "Some second thing here"
      }
    }
  ]
}

也许有完整文章的链接?

基本上,在遵循JSON API或REST标准时,这完全可能吗?因为由于获取数据的相关成本,GET /articles绝对不可能返回全部资源,我认为这种情况很少见。

wuyangzhi 回答:是否只允许返回JSON API集合的ID?

据我了解JSON API规范,并没有要求API默认必须返回资源的所有字段(属性和关系)。我知道的关于字段包含的唯一 MUST 语句与稀疏字段集fields查询参数)有关:

  

稀疏字段集

     

[...]

     

如果客户端请求给定资源类型的一组受限字段,则端点在响应中不得在该类型的资源对象中包含其他字段。

     

https://jsonapi.org/format/#fetching-sparse-fieldsets

即使如此,规范也不禁止这样做,我也不推荐这种方法。仅返回字段的子集会使使用API​​更加困难,因为您必须查阅文档以获取所有受支持字段的列表。让客户自行决定应包含哪些信息(和related resources),这在规范的意义之内。

,

JSON-API文档的“属性”对象不必完整表示:

  

属性:表示资源数据 some 的属性对象。

您可以提供一个“自我”链接以获取完整的表示形式,或者甚至可以提供一个“ body”链接以仅获取身体:

  

links:一个链接对象,其中包含与资源相关的链接。

例如

{
  "data": [
    {
      "type": "articles_snubs","id": "1","attributes": {
        "title": "JSON API paints my bikeshed!"
      },"links": {
        "self": "/articles/1","body": "/articles/1/body"
      }
    },{
      "type": "article_snubs","id": "2","attributes": {
        "title": "Some second thing here"
      },"links": {
        "self": "/articles/2","body": "/articles/2/body"
      }
    }
  ]
}
本文链接:https://www.f2er.com/3159996.html

大家都在问