私のリソースクラス:
@POST
@Path("/add")
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Object add(Flow flow){
Object obj = fun(flow.getParam1(),flow.getParam2());
return obj;
}
フローはJAXB
クラスであり、すべてparams
がそのメンバー変数です。
使用するコマンド:
curl -X POST -HContent-type:application/xml -k --data "<rootElementName param1=\"val1\" param2=\"val2\"/>" https://<ip>:8443/xxxx/add
curl -X POST -HContent-type:application/json -k --data "{\"@param1\":\"val1\",\"@param2\":\"val2\"}" https://<ip>:8443/xxxx/add
私の要件は、無効なパラメーター名とエラーを特定することです。
元:
curl -X POST -HContent-type:application/xml -k --data "<rootElementName invalidParam1=\"val1\" param2=\"val2\"/>" https://<ip>:8443/xxxx/add
リソース クラスは、このデータを検証してメッセージを返す必要があります Invalid param
: invalidParam1 HTTP GET メソッドの場合、複数値マップを反復することでこれを行いましたuriInfo.getQueryParameters()
param
メソッドに対してこの無効な検証を行うためのより良い方法を提案してくださいPOST
(可能であれば、多値マップ検証コードを再利用して)