第二篇:API的URL规则设计、带参数的路由


一:假设路由规则如下:

传统的一些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的帖子

代码如下:

 

 浏览器请求如下:

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM