gpt4 book ai didi

java - Swagger:使用 JAX-RS Map 作为主体参数

转载 作者:太空宇宙 更新时间:2023-11-04 14:54:03 25 4
gpt4 key购买 nike

我正在尝试在现有的 JAX-RS REST 项目中设置 Swagger 来记录我们的 API。

在我们接受 JSON 请求正文的操作中,我们一直使用这个习惯用法:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value="Some operation")
@ApiImplicitParams(value={
@ApiImplicitParam(name="val1", value="Input 1", dataType="string", paramType="body"),
@ApiImplicitParam(name="val2", value="Input 2", dataType="string", paramType="body")
})
public Response login(Map<String, Object> request) { }

通过接受 Map,JAX-RS 将 JSON 对象映射到映射中,以按键名称访问值。这很好,并且避免了每个此类操作都需要一个模型。

但是,Swagger 会扫描此类操作并自动包含 Map 作为请求参数。我的意图是在 @ApiImplicitParams 注释中正确定义参数。有没有办法让 Swagger 忽略 Map 并只使用 @ApiImplicitParams 中定义的参数?

最佳答案

我遇到了同样的问题并使用了

public Response login(@Context Map<String, Object> request) { }

这实际上隐藏了输出中的实际参数。注解来自

javax.ws.rs.core

关于java - Swagger:使用 JAX-RS Map 作为主体参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23414203/

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