GET端点:解析参数与添加新端点

时间:2020-04-07 12:56:17

标签: api-design

我有用户和帖子。用户可以发表帖子。我正在为帖子创建一个端点。这有道理吗?

帖子

/posts - POST, create post
/posts?{uID} - GET, get posts for user
/posts?{pID} - GET, get post by id
/posts/{pID} - PUT, update post by id

这个设计好吗?似乎两个GET请求都太相似了。我应该创建更独特的东西吗?

/posts/users?{uID} - GET, get posts for user

第一个缺点:后端的其他逻辑(如果是其他逻辑,则查看传递了哪个参数) 第二个缺点:其他端点

1 个答案:

答案 0 :(得分:0)

我认为您的大多数API设计看起来都不错,但是您应该对其进行一些更改,以遵循通用API设计指南建议的资源导向:

/posts - POST, create post 
/posts?userId={uID} - GET, get posts for user 
/posts/{pID} - GET, get post by id 
/posts/{pID} - PUT, update post by id

如果您想使用嵌套结构而不是查询字符串来获取用户的所有帖子,我建议您执行以下操作,而不要使用/posts/users?{uId}

/users/{uId}/posts - GET, get posts for user