我是靠谱客的博主 缓慢白昼,最近开发中收集的这篇文章主要介绍3步 引入 swagger2 生成接口文档,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

添加maven配置

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

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.9.6</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-annotations</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--引入1.5.21版本的annotations和models依赖-->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.21</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.21</version>
        </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值)是不会有这个错误的

最后

以上就是缓慢白昼为你收集整理的3步 引入 swagger2 生成接口文档的全部内容,希望文章能够帮你解决3步 引入 swagger2 生成接口文档所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部