2
我正在開發REST API和Jersey作爲JAX-RS實現。Jersey:禁止未指定的參數
在每一個資源我明確定義預期的參數:
@GET
@Path("/someData")
public Response getSomeData(
@QueryParam("id") final Long id,
@QueryParam("name") final String name) {
...
}
有許多固定的參數,這是所有資源(例如「區域」)普遍。我可以禁止任何既不屬於方法參數也不屬於公共參數的參數嗎?
因此,舉例來說,如果用戶調用
/api/resource/someData?id=10&locale=en
- 他得到的數據,但如果他援引
/api/resource/someData?id=10&locale=en&fakeParam=AAA
- 狀態400返回,與內容指出fakeParam
是未知參數。
當前第二個請求的處理方式與第一個請求的處理方式相同,並且fakeParam
簡單地被忽略。
我認爲描述驗證將幫助我的API用戶更早發現錯誤。
我使用彈簧,所以理論上你的解決方案應該工作。不過,我想避免混淆AOP配置和開發這種定製邏輯。 –