我们正在构建一个为员工数据服务的 Restful 服务。
我们有一个 api,它将返回属于客户特定部门的员工列表。
这个api需要2个参数——clientId和departmentId
根据标准,以下哪一项是为这个 api 构建一个安静的 url 的正确方法?
1) /client/{clientId}/department/{departmentId}/employees
2) /client/{clientId}/employees?departmentId={departmentId}
一个restful url能不能有多个路径参数 ?
如果上述问题是/否 - 为什么会这样?
最佳答案
在 RESTful API 中,路径参数用于标识资源(客户端、订单、博客文章等)。此资源通常是某个数据库中的记录。某些数据库表具有复合键,例如,如果您有一个系统存储有关多个不同客户的员工的数据,那么您的数据库中可能会有条目,例如
name | client_id | department_id
John | 1 | 1
Jane | 2 | 1
两个客户都有一个 ID 为
1
的部门.在这种情况下,如果目的是为给定客户识别给定部门中所有员工的列表资源,那么使用多个路径参数是有意义的。
/client/{clientId}/department/{departmentId}/employees
但是,如果这更像是一个搜索 API,那么拥有
employees?age={age}&height={height}
关于url - Rest URL 标准 - 多路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43039515/