【发布时间】:2021-04-13 08:55:12
【问题描述】:
我想为 api 设计一个端点,其中客户端只能在响应负载中获取 id。 例如Departments/{departmentId}/users/ids,这个端点会返回属于这个deparmentId的所有员工的userIds 请让我知道上述端点是否真的根据其他 api 标准有意义,或者应该有其他方式
【问题讨论】:
我想为 api 设计一个端点,其中客户端只能在响应负载中获取 id。 例如Departments/{departmentId}/users/ids,这个端点会返回属于这个deparmentId的所有员工的userIds 请让我知道上述端点是否真的根据其他 api 标准有意义,或者应该有其他方式
【问题讨论】:
请让我知道上述端点是否真的符合其他 api 标准
是的,很完美。 "任何可以命名的信息都可以是资源" (Fielding, 2000)。
GET /departments/17/users/ids
200 OK
Content-Type: text/plain
1
2
3
4
5
...
那很好。如果您想使用其他表示(HTML、或 JSON 或其他),那也是 fine。
从通用组件的角度来看,它只是一个文档。 Transferring documents over a network 是 HTTP 的用途。
【讨论】:
您可以删除 /ids 后缀并使用部门/{departmentId}/users 并使用此路由进行分页。如果您正在对用户进行分页,并且您希望用户很多,通常这样的 API 会返回列表页面中使用的数据,因此您可以返回用户名、电子邮件、头像链接和所有需要的信息。到视图。
没有其他解决方案,除非你切换到类似 graphql 的东西。
【讨论】: