我正在实现我的第一个 REST API,我对 URL 端点的语法有疑问。
我知道我应该使用这些端点来获取、创建、更新和删除:
获取项目列表
方法:GET,网址:/api/items
通过 id 获取项目
方法: GET, Url:/api/items/:id
添加项目(请求正文中的新项目数据)
方法:POST,Url:/api/items
Modify item(修改请求体中的item数据)
方法:PUT,Url:/api/items/:id
删除项目
方法: DELETE, Url:/api/items/:id
但是可以说 item 的界面是
interface item
{
id: string;
name: string;
}
Run Code Online (Sandbox Code Playgroud)
通过名称获取项目的请求 url 应该是什么?
我不能使用 Method: GET, Url: /api/items/:name,因为这将匹配 get-by-id 请求。那么我应该如何编写这个端点的语法?
除非您正在执行 OData,否则没有标准的 REST URI 语法。您可以完全自由地设计自己的 URI,甚至/resource/{id}完全有效。
我喜欢做的是结束集合的 URI/并使用查询来过滤集合。所以我会做/api/{version}/items/?name={name},如果他们有独特的名字和你所期望的项目,而不是一个集合,然后我会做这种方式:/api/{version}/items/name:{name}。但这是我的风格。
从客户端的角度来看,URI 语法完全无关紧要,因为服务器根据 HATEOES 约束将有效的 URI 模板提供给客户端。如果您不这么认为,那么您可能正在构建 CRUD API 而不是 REST API。
| 归档时间: |
|
| 查看次数: |
3086 次 |
| 最近记录: |