鍍金池/ 問(wèn)答/Linux  HTML/ Restful 查詢(xún)URL設(shè)計(jì)

Restful 查詢(xún)URL設(shè)計(jì)

在后臺(tái)開(kāi)發(fā)中,我為用戶(hù)分組提供一個(gè)Restful接口,涉及到這兩個(gè)查詢(xún):

1.返回所有的分組(需要分頁(yè))
2.返回所有的分組(不需要分頁(yè),每一項(xiàng)需要多返回一些數(shù)據(jù))

就如我當(dāng)前希望查詢(xún)的是item,針對(duì)第一種我的URL是/item?page=1&size=10,那么第二種我又該怎么設(shè)計(jì)呢?(不僅僅是分不分頁(yè)的問(wèn)題,還涉及到這兩者雖然都是查詢(xún)item,但是需要返回的內(nèi)容是不同的)

回答
編輯回答
避風(fēng)港

后臺(tái)可以分類(lèi)吧,比如這個(gè)你設(shè)計(jì)的鏈接含有page和size的數(shù)據(jù),根據(jù)前端傳回的數(shù)據(jù)里是否含有page和size分類(lèi),返回不同的內(nèi)容

2017年2月6日 13:23
編輯回答
尛憇藌

開(kāi)發(fā)接口就是為了提供給他人使用,所以接口設(shè)計(jì)一定要友好。

在Restful接口設(shè)計(jì)中,通常請(qǐng)求資源接口使用資源的名詞復(fù)數(shù), 如:
https://api.github.com/users/tinyking/repos
此restful接口為github提供的查詢(xún)資源庫(kù)的。

所以建議接口可設(shè)計(jì)為
xxx/items
xxx/items?page=1&size=10

另外問(wèn)題中提到,兩個(gè)接口返回的內(nèi)容不同,基于接口的友好性,建議再設(shè)計(jì)一個(gè)接口用于特殊查詢(xún)。

當(dāng)然,如果是使用的spring data 的話(huà), 可以考慮使用projection特性。具體可參考spring data的參考文檔

2018年8月26日 12:15