第二篇: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