0

@ModelAttribute我已经为 REST Web 服务配置了 Swagger,它运行良好并使用干净的文档获取我的请求、响应参数,但是在使用注释时无法显示模型架构

我必须做些什么才能让 Swagger 接受这样的注释@RequestBody吗?

4

1 回答 1

0

我在使用方法参数时遇到了类似的问题, @ModelAttribute结果证明该对象不是正确的 POJO 并且无法序列化。我弄清楚这一点的第一步是启用 Swagger/Spring 类的跟踪级别日志记录,并将以下 XML 块添加到我的 log4j2.xml 中:

<Logger name="com.mangofactory" level="trace"></Logger>

这导致输出以下记录的事件:

13:15:43.954 [localhost-startStop-1] DEBUG com.mangofactory.swagger.readers.operation.parameter.ModelAttributeParameterExpander - Expanding parameter type: class org.joda.time.DateTime
13:15:43.955 [localhost-startStop-1] DEBUG com.mangofactory.swagger.readers.operation.parameter.ModelAttributeParameterExpander - Attempting to expanding field: private static final long org.joda.time.DateTime.serialVersionUID
13:15:43.956 [localhost-startStop-1] DEBUG com.mangofactory.swagger.readers.operation.parameter.ModelAttributeParameterExpander - Skipping expansion of field: private static final long org.joda.time.DateTime.serialVersionUID, not a valid bean property

根据您的对象及其需求,您可能需要使用 SwaggerSpringMvcPlugin.directModelSubstitute 定义映射或确保您的对象具有匹配的 getter/setter。另一种选择是使用 Jackson Data Binding 库。

于 2015-04-09T21:25:30.553 回答