【问题标题】:RESTful design: resolving relationshipsRESTful 设计:解决关系
【发布时间】:2013-08-24 17:27:22
【问题描述】:

我的问题基于这篇文章:should-restful-apis-include-relationships

假设我有以下资源:用户和角色

api/users/{userId}可以检索单个用户,api/roles/{roleId}

可以检索单个角色

单个用户的响应数据如下:

Id: 1
Firstname: Alice
Lastname: Henderson
Email: alice@henderson.com
Roles: api/users/1/roles

要获取此用户的角色,应用程序需要调用返回的 url api/users/1/roles

对于显示 1 个用户,这种方法似乎没问题。但是,如果我想显示具有相应角色的所有用户,则应用程序需要 1 次调用 api/users 和 x 次调用 api/users/x/roles

如何改进这种设计以检索多个用户并解决他们的角色关系?

【问题讨论】:

    标签: api rest


    【解决方案1】:

    您可以设计您的 API 以接受一个或多个查询参数,这些参数指定您想要的详细程度。例如:

    GET /api/users/1?expand=role(self, id, name)
    
    {
        "id": 1
        "firstName": "Alice"
        "lastName": "Henderson"
        "email": "alice@henderson.com"
        "roles": [
            {
                "self": "api/roles/4"
                "id": 4
                "name": "Administrator"
            },
            {
                "self": "api/roles/7"
                "id": 7
                "name": "Uberuser"
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多