【发布时间】:2017-12-10 14:38:11
【问题描述】:
在 MVC 中,您会期望控制器接收模型作为输入并生成模型作为输出。在 Swagger 中,后者不是问题,但我对前者有问题。我不明白如何让 Swagger 从传入的 GET 参数构建输入模型。
考虑:
"paths": {
"/search": {
"get": {
"consumes": [],
"produces": [
"application/json"
],
"parameters": [
// What goes here?
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/SearchResponse"
}
},
}
}
}
}
如何使生成的控制器的方法具有如下签名:
public ResponseEntity<ResultModel> controllerGet(ModelFromParameters input);
其中 ModelFromParameters 会有几个字段对应不同的 GET 参数。
示例主要关注 POST 请求或 GET 请求,其中 20 多个参数中的每一个都填充在方法的参数列表中,这显然是反 MVC。
所讨论的 API 是一个复杂的无状态查询系统,有很多参数。
【问题讨论】:
-
这应该可以正常工作。只要参数不是
@RequestBody或@RequestPart。或者,如果您想显式地使用@ModelAttribute注释参数将导致所需的行为 -
@DilipKrishnan 在 Spring MVC 中会,但我将如何使用 Swagger 对其进行建模?
-
@DilipKrishnan 也不是
@RequestBody和@RequestPart都是 POST 而不是 GET? -
在设计优先的方法中使用 swagger 时,您不能,也不确定为什么需要这样做。
-
true 是一般性评论
标签: java spring-mvc get swagger