others - rest - 只返回允许的JSON API集合的ID?

假设我有一个叫做articles的资源,有数字标识,可以在以下某些情况下访问它们:

针对特定文章的GET /articles/1

假设返回:


{


"data": {


"type":"articles",


"id":"1",


"attributes": {


"title":"JSON:API paints my bikeshed!",


"body":"A bunch of text here"


 }


 }


}



现在我的问题是如何处理对GET /articles的请求,换句话说,如何处理对集合的请求。

有没有方式仅在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规范不需要一个API在默认情况下返回资源的所有字段(属性和关系),对于我所知的字段包含,唯一必须声明的语句与稀疏集合(fields查询参数)相关:

[... ]

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

即使如此,我不推荐这种方法也不禁止这种方法,仅返回字段的一个子集会使得你的API更困难,因为必须参考文档才能获得所有支持的字段,让客户端决定要哪些信息(还有相关资源 )。

集合中每个对象的"自"链接都是表示如何检索完整表示形式的适当方法,


{


"data": [


 {


"type":"article_snubs",


"id": 1,


"title":"JSON:API paints my bikeshed!",


"_links": {


"self": {


"href":"/articles/1"


 },


"body": {


"href":"/articles/1/body"


 }


 }


 }, {


"type":"article_snubs",


"id": 2,


"title":"Some second thing here",


"_links": {


"self": {


"href":"/articles/2"


 },


"body": {


"href":"/articles/2/body"


 }


 }


 }


 ]


}



如果你正在寻找一些模式,HAL是一个不错的起点。

...