一:假設路由規則如下:
傳統的一些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的帖子
代碼如下:
瀏覽器請求如下: