gpt4 book ai didi

json-api - JSON API 实体是否应该包含其父实体的关系?

转载 作者:行者123 更新时间:2023-12-05 05:15:05 26 4
gpt4 key购买 nike

我一直没能找到明确的答案,希望有人能帮忙。

如果我们有一个包含帖子的博客,每个帖子都可以有评论,每个评论都有一个相关的用户。如果我请求评论,将用户帖子都包含在关系中是否违反惯例?

data: {
type: 'comments',
id: '1',
relationships: {
post: {...}, //should this be here?
user: {...},
}
attributes: {...},
},
included: {...}

最佳答案

正如 paulsm4 正确指出的:“这取决于你”。

但我可以给你一些建议。

在这种情况下,您可以通过查询字符串标志让 API 的调用者选择是否具有此类链接,例如

?relationships=post,user

在这种情况下,如果您不指定关系标志,您将获得简单的评论数据,或者您可以决定全部提供;在第二种情况下,您可以使用关系 作为一种过滤器。

在一些 API 中,我还看到了一种更具侵入性的方法:将相关对象直接嵌入到返回的 JSON 中。

使用与之前相同的技术:

?embed=post,user

这应该会在当前 JSON 回复中生成一个嵌入的 JSON 对象,包括原始对象,就像您分别询问“GET/post/123”或“GET/user/456”之类的内容一样。这在某些情况下会很方便。

通常此标志被命名为“expand”,表示相同或相似的行为。

例如,打开 this API documentation from Atlassian 并搜索“expand”。

对于您的问题,确实存在一个名为 HAL 的旧“标准”,它谈到了 REST API 中的链接和嵌入。

甚至 Wordpress API 也提供了这样的功能,请在 official documentation 中查看它。

另一种方法是利用 REST 方法在 GraphQL 中重写整个 API。

关于json-api - JSON API 实体是否应该包含其父实体的关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51939865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com