当前位置: 首页 > 知识库问答 >
问题:

Swagger-ui - 列表参数编码

毛胜
2023-03-14

如何设置swagger ui以正确编码参数列表?例如:我有一个服务,它接收以下格式的整数列表:

http://server/api/resource?id=1&id=2&id=3

然而,在我的swagger-ui文档中,参数显示为单个文本字段,它需要一个逗号分隔的列表。如果我以这种格式提供参数,我会从service(使用RestEasy编写,顺便说一下)得到以下响应:

无法从超文本传输协议请求中提取参数:javax.ws.rs.QueryParam(\"id\")值为'1,2,3'用于公共javax.ws.rs.core.响应companyname.methodname(java.util.列表)"

swagger规范是使用一组maven插件生成的:swagger jersey jaxr、swagger注释、swager core和swagger jaxr。主swagger规范json是在应用html" target="_blank">程序启动时通过com.wordnik.swagger.jxrs.config生成的。BeanConfig,在我的Spring上下文中注入。

在这一点上,我显然被卡住了。如果有人能提供任何想法,我真的很感激。

提前谢谢!维尼修斯

共有1个答案

赵经国
2023-03-14

使用Swagger 1.2和相应的swagger-ui没有很好地定义和实现对重复查询参数名的支持。

要正确支持它,您需要转到Swagger 2.0和最新版本的Swagger ui(当前主版本)。

对Swagger 2.0的Swagger-Core支持目前正在开发中,但即将发布一个里程碑式的版本。您可以从sonatype获得快照,或者从github存储库的develop_2.0分支自己构建快照。支持Swagger 2.0的swagger-core版本是1.5。

对它的支持是通过collectionFormat属性完成的,其值为multi-

 类似资料:
  • 我用swagger,OpenAPI版本3为web API编写文档。我使用swagger php包从注释生成文档化的json。我有一个服务,在那里我发送post请求以添加新用户,请求的主体是json(因此参数作为json对象发送)。它有两个参数-电子邮件和密码。请求正文看起来像 这是大摇大摆的 YAML 这里是包含请求参数的参考模式(< code >/components/schemas/sign

  • 是否可以以某种方式标记属性,以便在发送请求时可以理解在SwaggerUI中应设置哪个字段。 例如,我们有一个支付路由,它具有payment_type属性,可以保存paypal、credit_card、crypto等值。基于该字段,我们需要填充不同的属性,如下所示。 是否有可能以某种方式标记它们,以便将它们分组,例如对于加密加密货币,应该设置wallet_address,而对于银行转帐,应设置快速,

  • 问题内容: 我的路由器看起来像这样: 但是当我使用 与我期望它变成而是我得到。 如何使它通过参数而不进行编码? 问题答案: 如此处所述,您需要为URL参数声明自定义变量类型,以使斜杠不被编码。引用来自github的评论: 如果您确实不希望为斜杠编码,请在regexp中注册一个自定义类型,然后声明item_id为您的自定义类型,即url:/ {item_id:MyType}

  • 我有以下Azure函数,它是HTTP触发的。我已经使用这里的链接为我的endpoint设置了Swagger。下面的API需要一组查询字符串参数,即“name”、“email”、“phone”,因此它可以针对目标对象进行一些搜索。目前,函数的主体当然还没有实现,这对这个问题来说并不重要。 我的问题是:如何在swagger UI中显示查询字符串参数? 函数:

  • Swagger UI是一款RESTFUL接口的文档在线自动生成+功能测试功能软件。   demo参见:http://petstore.swagger.wordnik.com/#!/pet

  • 在记录API时,有没有办法提供可能值的列表?类似于这样: