JSONAPI - 链接资源中self和related之间的差异

jax*_*jax 11 json-api

为什么以下JSONAPI资源中的selfrelated引用不同?他们不是指向相同的资源吗?去/articles/1/relationships/tags和之间有什么区别/articles/1/tags

{
  "links": {
    "self": "/articles/1/relationships/tags",
    "related": "/articles/1/tags"
  },
  "data": [
    { "type": "tags", "id": "2" },
    { "type": "tags", "id": "3" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*mmz 12

你可以在这里阅读:https://github.com/json-api/json-api/issues/508.

基本上,/articles/1/relationships/tags响应将是表示articles和之间关系的对象tags.响应可能是这样的(你在问题中提出的):

{
  "links": {
    "self": "/articles/1/relationships/tags",
    "related": "/articles/1/tags"
  },
  "data": [
    { "type": "tags", "id": "2" },
    { "type": "tags", "id": "3" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

此响应仅提供必要的数据(在主数据属性 - 数据中)来操纵关系,而不是与关系相关的资源.话虽这么说,你会打电话,/articles/1/relationships/tags如果你想创建新的关系,添加一个新的标签(基本上更新关系)到文章,阅读哪些标签属于文章(你只需要身份在服务器上搜索它们)或删除文章标签.

在另一方面,通话/articles/1/tags将标签作为应对主要数据与他们所有的其他属性(文章,关系,链接,和其他顶级属性,包括,强调文本,链接和/或jsonapi).