url - Rest URL 标准 - 多路径参数

标签 url restful-url path-parameter

我们正在构建一个为员工数据服务的 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/

相关文章:

Angular 路由器导航更改 url,但不呈现组件

java - 解决JAVA中一个URL请求的NullPointerException

asp.net - 如何从我的 URL 中删除 ASP.NET session ID?

PHP 和 URL 的哈希/片段部分

管理员和普通用户访问的 RESTful API 最佳实践

java - 泽西路径参数 : Multiple backslash separated param

python - 来自模型的 django url

rest - 如何在 REST API 中定义编辑页面?

java - Spring MVC Controller : Redirect without parameters being added to my url

json - OpenAPI 路径/查询参数嵌套结构序列化