看了几篇关于 restful api 规范的文章,看完依然有些疑惑,比如:
获取某个分类下的所有影片: 是
/api/categories/:categoryId/movies
还是
/api/movies?categoryId=xxx
比较好?
主要疑惑于什么部分应该放在 URL 路径里,什么部分应该放在 query 里面
比如按照关键词搜索影片: 是
/api/movies/search/:keyword
还是
/api/movies?keyword=xxx
以我目前的理解,得出的一份“正确”设计为
/api/v2/categories
/api/v2/categories/:category_id
/api/v2/categories/:category_id/movies?page=1
/api/v2/stars?page=1
/api/v2/stars/:star_id
/api/v2/stars/:star_id/movies?page=1
/api/v2/movies?query=xxx
/api/v2/movies/:movie_id
但是如果想根据 category_id 和 star_id 一起筛选,又该怎么办呢
求各位大佬指教
1
shenjinpeng 2022-11-09 16:59:15 +08:00
放到 url param 里 , movies 才是资源 , 这里的 categoryId 和 keyword 属于筛选条件
|
2
shenjinpeng 2022-11-09 17:01:57 +08:00
第一种也不算错, 比如查看 某篇新闻下的评论
``` /api/news/1/comment /api/news/1/comment/21 /api/news/comment/21 ``` |
3
optional 2022-11-09 17:09:10 +08:00 via iPhone
和 ddd 的聚合根分析差不多,url 是不是放路径里,也去判断 A 能不能脱离 B 单独存在,A 是不是 B 的一部分
|
4
yoa1q7y OP @shenjinpeng https://www.v2ex.com/help/api V2EX 是这样设计的,不过示例有些少
|