3步 引入 swagger2 生成接口文档

3步 引入 swagger2 生成接口文档,第1张

添加maven配置

pom.xml文件中添加如下配置后reimport一下

        <dependency>
            <groupId>com.github.xiaoymingroupId>
            <artifactId>swagger-bootstrap-uiartifactId>
            <version>1.9.6version>
        dependency>
        <dependency>
            <groupId>io.springfoxgroupId>
            <artifactId>springfox-swagger2artifactId>
            <version>2.9.2version>
            <exclusions>
                <exclusion>
                    <groupId>io.swaggergroupId>
                    <artifactId>swagger-annotationsartifactId>
                exclusion>
                <exclusion>
                    <groupId>io.swaggergroupId>
                    <artifactId>swagger-modelsartifactId>
                exclusion>
            exclusions>
        dependency>
        
        <dependency>
            <groupId>io.swaggergroupId>
            <artifactId>swagger-annotationsartifactId>
            <version>1.5.21version>
        dependency>
        <dependency>
            <groupId>io.swaggergroupId>
            <artifactId>swagger-modelsartifactId>
            <version>1.5.21version>
        dependency>
启动类加上注解

在自己的项目启动类上加上注解
其中 @EnableSwaggerBootstrapUI 非必须(增强ui功能用的)

@EnableSwagger2
@EnableSwaggerBootstrapUI
加上一些文档注解

介绍几个基础的

  • @ApiOperation 用于接口方法上
  • @ApiModel 用于实体类上
  • @ApiModelProperty 用于实体属性上
访问地址

部署机器的ip:部署端口号/doc.html

http://localhost:8080/doc.html

顺便聊一下一个swagger 异常
java.lang.NumberFormatException: For input string: ""
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Long.parseLong(Long.java:702)
	at java.base/java.lang.Long.valueOf(Long.java:1144)
	at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:688)
	at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:722)
	at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:166)
	at com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119)

出现这个异常是由于@ApiModelProperty注解的example默认值是"", 这就导致如果你字段为数字类型则会出现一个转型错误
访问ui页面的时候生成文档会调用getExample方法就会触发这个错误

按我上面的pom配置可以避免掉这个错误, 当然文档写得足够规范(每个字段都自定义example值)是不会有这个错误的

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/721962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存