Java 在@FormParam字段中使用Swagger UI@ApiParam注释

Java 在@FormParam字段中使用Swagger UI@ApiParam注释,java,api,jax-rs,resteasy,swagger,Java,Api,Jax Rs,Resteasy,Swagger,我构建了一个RestEasy API,并将其与Swagger UI链接。我被要求完成的一项任务是,找到一种方法来减少方法签名中的查询参数,并用某种“DTO”来处理它们 我的原始实现类似于: @GET @ApiOperation(value = "echo test value", notes = "echo test notes") @ApiResponse(code = HttpServletResponse.SC_OK, message = "Response.status.OK

我构建了一个RestEasy API,并将其与Swagger UI链接。我被要求完成的一项任务是,找到一种方法来减少方法签名中的查询参数,并用某种“DTO”来处理它们

我的原始实现类似于:

  @GET
  @ApiOperation(value = "echo test value", notes = "echo test notes")
  @ApiResponse(code = HttpServletResponse.SC_OK, message = "Response.status.OK")
  public Response echoTest(
    @ApiParam("id") @QueryParameter("id") final int id,
    @ApiParam("fName") @QueryParameter("fName") final String fName,
    @ApiParam("sName") @QueryParameter("sName") final String sName) {

    // handle request

  }
我已经将查询参数处理提取到DTO,尽管现在我不确定如何处理虚张声势的UI方面的事情。我曾尝试在DTO中注释字段,但正如我所猜测的那样,这不起作用。我的当前解决方案没有正确的招摇过市ui交互:

  @GET
  @ApiOperation(value = "echo test value", notes = "echo test notes")
  @ApiResponse(code = HttpServletResponse.SC_OK, message = "Response.status.OK")
  public Response echoTest(@ApiParam("form") @FormParam QueryDTO dto) {

    //Handle request

  }
QueryDTO.java:

public class QueryDTO {

  @ApiParam(name = "id", value = "user id") @QueryParam("id") private int id;
  @ApiParam(name = "fName", value = "user first name") @QueryParam("fName") private String fName;
  @ApiParam(name = "sName", value = "user surname") @QueryParam("sName) private String sName;

  // Getters,setters etc

}

SwaggerUI支持这种类型的功能吗?有适合我的用例的替代方法吗?感谢您的任何建议或帮助。

这里的问题不是招摇过市的用户界面,而是招摇过市的核心

Swagger Core不支持RESTEasy的@Form注释,只支持标准JAX-RS注释

在您提到该注释之前,我对它并不熟悉,但它的作用方式似乎与JAX-RS2.0中引入的@BeanParam相同。RESTEasy 3.0及以上版本应提供对它的支持。Swagger core能够处理@BeanParam以生成适当的文档


如果您仍然希望只支持@Form,那么必须在Swagger Core的存储库中打开一个问题。

我在文档中注意到了这一点,正在尝试使用@BeanParam解决方案-谢谢。