rest - 有没有更好的安静界面?

标签 rest restful-url restful-architecture

GET https://api.website.com/v1/project/employee;company-id={company-id},
title={title-id}?non-smoker={true|false}&<name1>=<value1>&<name2>=<value2>&<name3>=<value3>

其中: 公司 ID 是强制性的, 标题是可选的 名称/值可以是任何过滤条件。

有没有更好的方法来定义接口(interface)?

此 API 不应创建员工对象。它用于获取属于特定公司并具有特定头衔和其他过滤条件的员工对象数组。

最佳答案

我不知道是否有更好的方法,因为这通常取决于您使用的技术及其习惯用法。

但是,这是我喜欢的两种不同的 URI 设计(以及原因)

#1 GET https://api.website.com/v1/project/employee/{company-id}?title={title-id}&non-smoker={true|false}&<name1>=<value1>&<name2>=<value2>&<name3>=<value3>

#2 GET https://api.website.com/v1/project/company/{company-id}/employee?title={title-id}&non-smoker={true|false}&<name1>=<value1>&<name2>=<value2>&<name3>=<value3>

正如您在两个示例中看到的,我从查询字符串中提取了公司 ID。我更喜欢在路径信息中添加强制参数来区分它们。然后,在第二个 URI 中,员工资源嵌套在公司中。这样您就可以很容易地猜测您可以检索特定公司的所有员工,这在第一个示例中并不明显。

关于rest - 有没有更好的安静界面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15015642/

相关文章:

java - 如何对 GET 请求中返回的数据进行分页

http - 为用户与其他实体交互构建 URL 的 RESTful 方式是什么?

rest - HATEOAS API 客户端不应使用添加书签的 URL 吗?

rest - 在 REST 中起草一篇文章

javascript - 如何使用 Rest 扩展共享点文档库中的查找字段

c# - WCF Rest api - [WebGet] 工作,但未找到 [WebInvoke(...GET...)] 的端点

javascript - 如何将 WebSocket 连接与 Socket.io 事件和 Koa Rest api 结合使用?

json - 如何默认为 visual studio web api 返回 json

node.js - 用于生成 pdf 的 React JS/Node JS/Java RESTful API

java - 定期发送大量邮件