如果我有一個Employee
實體的話,我希望有一個EmployeeRepository
,讓我findEmployeesBySalary(SortType sortType, int skip, int limit)
從Web服務端,我想要一個URI像
foo.com/employees?by=salary&skip=10&limit=50
返回類似的信息(如一個AJAX調用XHR)
<employees>
<employee uri="/employee/1" />
<employee uri="/employee/2" />
<employee uri="/employee/3" />
</employees>
或成熟的HTML頁面呈現適當。
這很方便地允許在客戶端(緩存大小是靈活的)和HTTP級別對員工進行緩存。
請注意,列名?無關緊要。根據需要,您將有一個HiberateEmployeeRepository
實現EmployeeRepository
接口。將這些東西表達爲方法,並根據需要使用複雜的參數。
如果你願意,甚至可以有兩種獨立的方法,而不是枚舉,findHighestPaidEmployees
和findLowestPaidEmployees
- foo.com/employees?salary=lowest&skip=10&take=30
請注意,這是一個非常令人沮喪的URI。
在我的理解SortType枚舉是服務層API的一部分。因此,Web控制器必須從URI參數轉換爲SortType枚舉 –
是的,或者如果您有不同的方法,調用哪種方法。當我使用JAX-RS/Jersey時,我可以通過一個帶String或ValueOf工廠的構造函數自動將URI路徑或查詢parmaters編組爲對象。 –