寫接口時候參考了restful風格,阮一峰 RESTful API 設計指南有如下例子GET /zoos:列出所有動物園
POST /zoos:新建一個動物園
GET /zoos/ID:獲取某個指定動物園的信息
PUT /zoos/ID:更新某個指定動物園的信息(提供該動物園的全部信息)
PATCH /zoos/ID:更新某個指定動物園的信息(提供該動物園的部分信息)
DELETE /zoos/ID:刪除某個動物園
GET /zoos/ID/animals:列出某個指定動物園的所有動物
DELETE /zoos/ID/animals/ID:刪除某個指定動物園的指定動物但實際應用上,并沒有這么簡單,比如有接口:列出所有所有動物:path 是 /zoos/all/animals/all 還是 /animals,按接口目的來看,我只關心動物 /animals好像更合適,但與 /zoos/ID/animals 功能有重合,后臺要維護兩個路由列出有大熊貓動物園:path 怎么寫,列出所有海洋動物園所有動物:path 怎么寫,實際接口中篩選條件通常會很多,而且并不會像 國>省>市>區>路這樣一級一級地縮小范圍,這種情況下,傳統方式寫接口似乎就非常簡單,getZoos?city=廣州&anamal_type=大熊貓getZoos?zoo_type=海洋館getAnimals?anamal_type=海洋生物接口初期,功能簡單,用restful非常優雅,但是功能復雜起來了,覺得好像不太適用,而且接口版本也沒達到經升級的程度,就會有兩種寫法并存,好尷尬!你們是怎么做的!有沒有功能復雜一點的restful例子?
1 回答

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
你也沒必要非要在 /zoos/ID/animals/ID
這樣寫啊
不能有動詞 不代表不讓你用 參數啊
也可以用一些參數進行過濾
POST /getZoos POST /saveZoos POST /removeZoos
get /zoos POST /zoos DELETE /zoos
例如,從賬戶1向賬戶2匯款500元 下面這樣寫肯定不行
POST /accounts/1/transfer/500/to/2
可以這樣
POST /transaction from=1&to=2&amount=500.00
- 1 回答
- 0 關注
- 550 瀏覽
添加回答
舉報
0/150
提交
取消