我已经为REST Web服务配置了Swagger,它运行良好并使用干净的文档提取我的Request,Response参数但是在使用@ModelAttribute
注释时无法显示模型架构
我需要做些什么才能让Swagger接受@RequestBody
这样的注释?
答案 0 :(得分:0)
我在方法参数上使用@ModelAttribute
时遇到了类似的问题,结果发现该对象不是正确的POJO而无法序列化。解决这个问题的第一步是启用Swagger / Spring类的跟踪级别日志记录,并在log4j2.xml中添加以下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库。