[英]JAX-RS Mixing @FormParam and MultivaluedMap<String, String> formParams
我有一個方法可以返回父記錄的所有記錄子(例如文檔和行):
public Datasource<Son> getSonsFromParent( @FormParam(value = "idparent") Long idparent,
MultivaluedMap<String, String> formParams) throws Exception;
我有一個眾所周知的參數“ idparent”。 我想簡單地使用@FormParam
獲得此參數。 將這種方法暴露給其他人很有用:他們知道需要“同父異母”。
另外,例如,我有許多未定義的參數可用於排序和過濾數據源
sort[0]=name
sort[1]=surname
filter[0][field]=name
filter[0][operator]=equal
filter[0][value]=Marc
問題是: 使用@FormParam
,多值映射始終為空。
如何將@FormParam
和@FormParam
混合在一起?
您不能在同一資源方法中使用@Formparam, MultiValuedMap, @FormDataParam,@BeanParam
。 JAX-RS不知道哪個是映射請求中信息的正確對象。
無論如何,我不明白為什么您不只是使用MultiValuedMap<String,String> formParams
並僅驗證 idParent
。
使用@Formparam
不會使需要這樣的參數,你負責的這個通過您的代碼實現:
public Datasource<Son> getSonsFromParent( MultivaluedMap<String, String> formParams) {
String idParent = formParams.getFirst("idparent");
if(idParent == null || idParent.isEmpty()){
// return .... [idParent is required] 400 Bad Request
}
}
如果您打算向客戶公開此類參數,則還意味着您在此API的文檔中將公開所有參數,而不僅僅是必需的權利?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.