博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot中使用Swagger2
阅读量:6715 次
发布时间:2019-06-25

本文共 2435 字,大约阅读时间需要 8 分钟。

使用RESTful服务通常是涉及到多个终端的团队,比如Android、iOS、WEB等。为了让大家沟通顺畅,通常我们需要编写一份详细的RESTful业务接口文档

使用Swagger2有助于我们编写一份详细的RESTful业务接口文档,过去经常会使用Word或者Excel,但是接口非常多,细节又复杂,如果由程序员高质量的输出一个文档,经常耗时长而且效果也不好。Swagger2能将代码和注释说明很好结合在一块。既减轻了研发人员的负担,又能输出高质量的文档。

下面说下如何去使用

pom.xml中添加Swagger2依赖

2.6.1版本是16年11月才更新的版本

io.springfox
springfox-swagger2
2.6.1
io.springfox
springfox-swagger-ui
2.6.1

创建Swagger2配置类

@Configuration注解,让Spring来加载该类配置。

@EnableSwagger2注解来启用Swagger2。
apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。
RequestHandlerSelectors.basePackage()中填的是你controller的目录
apiInfo()方法中termsOfServiceUrlcontact可以用Contact的对象代替
Swagger2已经不支持String类型的contact

Paste_Image.png

Contact对象中name表示作者,url通常作为项目的链接,代替之前的termsOfServiceUrl方法,email的话不用我多说了吧,不想写的话可以为空字符串

Paste_Image.png

createRestApi函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)。

@Configuration@EnableSwagger2public class Swagger2 {        @Bean        public Docket createRestApi() {            return new Docket(DocumentationType.SWAGGER_2)                    .apiInfo(apiInfo())                    .select()                    .apis(RequestHandlerSelectors.basePackage("com.pjb.controller"))                    .paths(PathSelectors.any())                    .build();        }    private ApiInfo apiInfo() {        Contact contact=new Contact("作者名",          "http://www.jianshu.com/u/f192766abeab","email地址");        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2")                .description("Hello Swagger2")                //.termsOfServiceUrl("http://www.jianshu.com/u/f192766abeab")                //.contact("作者名")                .contact(contact)                .version("1.0")                .build();    }}

然后通过创建实体类和controller来简单测试下

具体的可以参照

简书作者 程序猿DD的文章Spring Boot中使用Swagger2构建强大的RESTful API文档

注意

记得在UserController中需要id输入的方法的注解少了个参数配置: paramType="path",不然所有的参数类型都会是body,获取不到请求参数。例如

@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long",paramType = "path")

访问:

就能看到前文所展示的RESTful API的页面。

Paste_Image.png

选中所写的UserController后出现5个方法让你测试

Paste_Image.png

具体的测试效果可以自己来测试玩玩

转载地址:http://lgelo.baihongyu.com/

你可能感兴趣的文章
PAT 1066. Root of AVL Tree (25)
查看>>
细说多线程之Thread与Runnable
查看>>
【Codeforces #134 Div2】Solutions 【Updated】
查看>>
数据库优化案例——————某知名零售企业ERP系统
查看>>
计算月份差方法封装
查看>>
setsockopt 设置socket 详细用法
查看>>
抽象工厂不同接口反射
查看>>
hdu1052
查看>>
服务器端推送技术
查看>>
python开发工具
查看>>
Home Assistant系列 -- 自动语音播报天气
查看>>
Hyberledger-Fabric 1.00 RPC学习(1)
查看>>
SDNU 1450.报时助手
查看>>
BZOJ 4144 Dijkstra+Kruskal+倍增LCA
查看>>
阻塞与非阻塞,同步与异步
查看>>
HTML段落自动换行的样式设置
查看>>
Android实现左右滑动指引效果
查看>>
html里frame导航框架实现方法
查看>>
shell编程系列5--数学运算
查看>>
在 UWP 应用中创建、使用、调试 App Service (应用服务)
查看>>