gpt4 book ai didi

java - 使用 Swagger-UI @ApiParam 注释 @FormParam 字段

转载 作者:行者123 更新时间:2023-11-30 08:19:42 31 4
gpt4 key购买 nike

我构建了一个 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,但现在我不确定如何处理 Swagger-UI 方面的事情。我曾尝试对 DTO 中的字段进行注释,但正如我所猜测的那样,这没有用。我的当前解决方案没有正确的 swagger-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-UI,而是 Swagger-Core。

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

在您提到之前我不熟悉该注释,但它看起来与 JAX-RS 2.0 中引入的 @BeanParam 的行为方式相同。 RESTEasy 3.0 及更高版本应提供对它的支持。 Swagger-core 能够处理@BeanParam 以生成适当的文档。

如果您仍然只想支持@Form,则必须在 Swagger-Core 的存储库上打开一个问题。

关于java - 使用 Swagger-UI @ApiParam 注释 @FormParam 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26651419/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com