【发布时间】:2022-01-11 17:43:11
【问题描述】:
首先,我知道当您指向资源时需要使用路径参数,而当您定义可以添加“属性”(或及时更改)的内容时,需要使用查询参数。
但是,假设我需要获取属于某个用户的数据。
在这种情况下,我喜欢这样编写 REST API URL。
https://mylink/user/getbyid
不是
https://mylink/user/get
在我编写 REST API 的方式中,我将调用 URL,例如 /user/getbyid?id=1。在我不编写 API 的方式中,您将其称为 /user/get/1。
由于我编写了诸如/user/getbyid、/user/getbyname、/user/getbyuid 之类的 API 调用,因此我很少使用路径参数。 99% 的时间我都在使用查询参数。
考虑到我编写 api 调用的方式,我是否违背了最佳实践?还是我做的是对的还是可忽略的?
【问题讨论】:
-
getbyid 更像 rpc 而不是 REST。 REST 将是 GET /user/{id}。对于搜索,我看到 POST /user 带有一个包含过滤器的 JSON 正文,例如{“名称”:“名称”}
标签: rest spring-mvc api-design restful-url