gpt4 book ai didi

休息 - 关系上下文

转载 作者:行者123 更新时间:2023-12-01 05:08:55 28 4
gpt4 key购买 nike

假设我有两个集合资源:

/persons
/organizations

一个 GET/persons/id/返回一个特定的人。同样,一个 GET/organizations/id返回一个特定的组织。

一个人可以是一个或多个组织的成员。在这种关系上下文中,我们拥有诸如此人在组织中的角色、此人加入组织的日期等数据……

哪些设计最有意义?
  • 一个成员(member)资源/memberships/id ,其中一个 GET返回关系上下文的数据(以及指向个人和组织的链接)。
  • 一个 /persons/id/organizations/id和一个 /organizations/id/persons/id .一个 GET到两者之一返回关系上下文,和一个 GET到另一个重定向(http 状态代码 303)到另一个。
  • 还有什么?
  • 最佳答案

    另一种选择是将关系直接嵌入到资源本身中。这使得客户端在使用服务时更容易跟踪资源之间的关系。例如,这是一个假设的 person,通过两个 organization 资源和其中一个 membership 资源与两个 membership 资源建立关系:

    "person890": {
    "firstName": "Jane",
    "lastName": "Smith",
    "links": [{
    "rel": "membership",
    "href": "memberships/123"
    }, {
    "link": "membership",
    "href": "memberships/456"
    }]
    }

    "membership123": {
    "role": "chairwoman",
    "date: "12/23/2013",
    "term": "3 years",
    "links": [{
    "rel": "person",
    "href": "persons/890",
    }, {
    "rel": "organization",
    "href": "organizations/7575"
    }]
    }

    这里工作的基本原则是 HATEOAS - “超媒体作为应用程序状态的引擎” - 它使对您的数据了解最少的客户端仍然可以与您的 API 交互。

    关于休息 - 关系上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26429924/

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