我通过将@FormDataParam
添加到REST接口的参数来接收表单数据。
我们公司的代码准则指出,在一种方法中,我们不应使用超过7个参数。因此,我想减少此REST接口的参数数量。
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
public Response upload(@Context final HttpServletRequest request, @FormDataParam("file") final java.io.File file, @FormDataParam("file") final FormDataContentDisposition fileMetaData, @FormDataParam("file") final FormDataBodyPart formDataBodyPart, @FormDataParam("networksegments") final String networksegments, @FormDataParam("users") final String users, @FormDataParam("username") final String username, @FormDataParam("token") final String token) {
//Some code
}
我正在寻找类似
request.getFormData("name")
的方法来使参数过时。上面的代码工作正常,我想优化。 最佳答案
您可以使用@FormDataParam
参数创建自己的bean,并将其添加到bean,然后对端点中的所有参数使用一个@BeanParam
class OrderBean {
@FormDataParam("clientName")
private String clientName;
// getter/setters
}
@POST
public Response post(@BeanParam OrderBean order) {}