一:假设路由规则如下:
传统的一些API路径设计方式(仔细看看行不行)
GET /topic/{topic_id} 获取帖子明细
GET /topic/{user_name} 获取用户发布的帖子列表
GET /topic/top 获取最热帖子列表
浏览器请求:
gin的路由使用的是httprouter库(请自行github一下),性能好,相对功能够用,目前不支持正则,也不支持 固定路径和参数路径共存
譬如
router.GET("/topic/:id", xxxoo)
router.GET("/topic/user", xxxoo)
甚至 "/topic/user/:username" 也会冲突
所以我们一开始设计的URL规则明显不符合规范,而且是不可用的;
那么如何设计URL规则,以及推荐的一些规范是怎么样的尼?
在实际开发的时候,网站上线以后我们做了一些升级,有了一些新的版本,但是一些老的版本还不想作废,这个时候我们就需要支持版本,其实我们的api是支持多版本api的;
所以大家可以在网上看到一些现代api设计,发现前面都有一些/v1/xxoo 等,表示版本1;
总体API规则:
1:api 有版本信息
譬如:/v1/xxxoo
/v1/xxxoo
2:尽可能使用复数,且含义明确,名词最佳
/v1/topics
/v1/users
/v1/getusers//不推荐
3:使用GET参数规划数据展现规则
/v1/users //显示全部或默认条数
v1/users?limit=10 //只显示10条
/v1/topics?username=xxoo //显示xxoo的帖子
代码如下:
浏览器请求如下: