使用@ApiModel遇到的问题及解决

使用@ApiModel遇到的问题及解决

本文主要介绍了使用@ApiModel时遇到的问题及其解决方法,具有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。

目录

@ApiModel的问题1。习惯二。三号坑。故障排除4。求解@ApiModel和@ApiModelProperty版本@ApiModel@ApiModelProperty

@ApiModel遇到的问题

swagger2中使用@ApiModel注释时swagger文档的乱序不规范;

1. 习惯

以前使用swagger2的时候,在给入口和出口实体添加comments @ApiModel的时候习惯性的添加了value=XXX 属性。在旧版本中没有发现问题。

2. 遇坑

最近在使用swagger版本2: 2.9.2时,遇到了一个问题。Swagger文档中参数结构示例中的参数与代码的parameter对象中的字段不一致,导致很多接口调试问题。

3. 排查

经过调查发现,直接使用@ApiModel并不规范。

00-

错误用法:

@ApiModel(值=用户信息)

正确用法:

@ApiModel(描述=用户信息)

经过调查发现,swagger2需要value属性在同一个服务全局中唯一。swagger会在swagger文档的底部列出API中所有引用的实体。如果有多个实体具有相同的@ API model(value= user information )注释,那么swagger将只识别一个。其他实体会被覆盖而不显示,其他被覆盖的实体会被引用API的文档中已识别的同名实体替换,导致文档显示混乱。

4. 解决

使用正确的用法:

@ API model(description= user information ),如果能保证代码规范中实体名称不会重复,用默认值就好了,所以不再配置。实体描述是用描述配置的。

@ApiModel和@ApiModelProperty

版本

springfox-swagger2(版本=2.9.2)swagger-bootstrap-ui(版本=1.9.6)swagger-models(版本=1.6.1)

@ApiModel

使用场景:在实体类上使用swagger的分析类来标记类。

属性数据类型默认值描述值字符串类名为模型描述提供了一个替代名称字符串提供了详细的类描述parentClass?Void.class为模型提供了一个父类,以允许描述继承关系。“discriminatorString”支持模型继承和多态。使用鉴别器的字段名称,可以断言需要使用哪个子类型subtype subTypesClass?[] {}从此模型继承的子类型数组referenceString 指定相应的类型定义和引用,重写任何其他指定的元数据。

@ApiModelProperty

使用场景:用在@ApiModel标注的模型类的属性上。

属性数据类型默认值描述值字符串属性简要描述名称字符串运行以覆盖属性的名称,覆盖属性名称allowableValuesString 限制参数accessString的可接受值筛选属性说明sString 不使用数据类型字符串的数据类型参数。是否需要传递positionint0来允许对模型中的属性hiddenboolean进行排序?如果为True,则隐藏模型属性exampleString的示例值。readOnlybooleanfalse指定模型属性是只读的。false: Non-read referenceString”指定相应类型定义的引用,覆盖任何其他指定的元数据。allowEmptyValuebooleanfalse允许传递空格,false:不允许传递空格。

以上个人经历,希望能给大家一个参考,也希望大家多多支持我们。

使用@ApiModel遇到的问题及解决