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/