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

使用Swagger/SpringFox和Spring Boot将查询参数解组到对象中

顾涵衍
2023-03-14

我的REST服务中有一个搜索endpoint。我使用的是Spring Boot,所以我有一个@RestController设置,它带有一个基于搜索查询返回搜索结果的方法。这是方法定义:

@ApiOperation(value = "Get global search results")
@RequestMapping(method = GET, produces = {"application/json"})
public SearchResults get(SearchQuery query) {
    ...
}

我希望SwaggerUI将SearchQuery的字段作为单独的查询参数显示在UI中。它不是;它只是显示了一个通用的“查询”参数。如果我用@RequestBody注释query,那么用户可以向主体添加一个json负载,但这是一个GET请求--我希望用户只使用查询参数。

共有1个答案

谢昊乾
2023-03-14

@modelattribute注释searchquery,它应该能按预期工作。

 类似资料:
  • 假设我有一个URL,其路径为: 如何将其转换为大摇大摆的文档,具体地说,将对象数组和数组作为查询参数。

  • 我有一个GET路由,我想在其中将url中的对象参数编码为查询字符串。 在编写 swagger 文档时,我基本上收到不允许我在类型参数中使用/类型的错误: 具有对象值的请求查询参数将在实际请求中编码。 即使 swagger在屏幕顶部显示错误,对象也会在 swagger UI 编辑器中正确呈现,但是该错误浮动在文档顶部。

  • 我如何访问生成的swagger-ui.html?或者index.html我似乎在我的项目中找不到这个文件。啊啊!

  • 在我的Zend应用程序中,我正在为移动应用程序编写一个小API。为了方便移动开发者,我使用了Swagger。到目前为止,除了一个GET请求外,一切正常。 当我呼叫/user/messages/{sessionToken}时?numMessages={numMessages} 有人知道我的错误吗? 欢迎任何帮助。 诚挚的问候 罗特曼 更新:按照建议,我将两个参数类型都更改为“查询”并更改了路径: 但

  • 例如:我有两个相同的路由定义endpoint: 发布/api/customer(路由模板->/api/customer) post/api/customer?f={f}&l={l}(路由模板->/api/customer) 默认的swagger生成器的问题是它给出了与相同endpoint的冲突。我尝试了swashbuckle中的方法,但没有太大帮助。

  • 我使用的是swagger版本2.2.2。如果我转到地址http://localhost:8080/swagger-ui.html,我将直接获得swagger UI。有没有办法,一个安全层可以增加,像,用户应该提示输入用户id和密码之前,大摇大摆的UI显示?