我通过将@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) {}

10-06 00:38