gpt4 book ai didi

REST 返回一个对象图

转载 作者:行者123 更新时间:2023-12-04 03:35:29 26 4
gpt4 key购买 nike

我是 REST 架构设计的新手,但我认为我已经掌握了它的基础知识。

我从 RESTful 调用返回对象时遇到问题。如果我提出 http://localhost/ 之类的请求{type A}/{id} 我将从数据库中返回一个具有指定 ID 的 A 实例。

我的问题是当 A 包含 B 对象的集合时会发生什么?目前,我生成的 XML 返回 A,其中包含 B 对象的集合。可以想象,如果 B 类型有一个 C 对象的集合,那么返回的 XML 最终将是一个相当复杂的对象图。

我不能 100% 确定,但这感觉违反了 RESTful 原则,A 的 XML 应该将 A 的字段等以及 URI 的集合返回到它拥有的 B 的集合。

抱歉,如果这有点令人困惑,我可以尝试详细说明。这似乎是一个相对基本的问题,但是我无法确定哪种方法“更”RESTful。

干杯,

艾多斯

最佳答案

一个基本的 RESTful 原则是一切都有一个 URI。

你有这样的URI。

  • /A/和/A/id/获取 A 和特定 A 的列表。A 响应包括 B 的 ID。
  • /B/和/B/id/获取 B 和特定 B 的列表。B 响应包括 C 的 ID。
  • /C/和/C/id/获取 C 和特定 C 的列表。

  • 您可以通过一系列查询来重建 A-B-C 结构。你得到A,然后得到相关的B。获得 B 时,您会获得所引用的各种 C。

    编辑

    没有什么能阻止您返回更多。

    例如,您可能有以下几种 URI。
  • /flat/A/id/ , /flat/B/id//flat/C/id/返回“平坦”(即没有深度)结构。
  • /deep/A/id/ , /deep/B/id//deep/C/id/返回具有完整深度的结构。
  • /deep/A/id/将是整个结构,在一个大的嵌套 XML 文档中。对于可以处理它的客户来说很好。 /flat/A/id/将只是平面文档中的顶层。最适合无法处理深度的客户。

    关于REST 返回一个对象图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/387943/

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