前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot整合Swagger测试api构建

SpringBoot整合Swagger测试api构建

作者头像
java架构师
发布2019-03-06 10:05:32
7770
发布2019-03-06 10:05:32
举报
文章被收录于专栏:Java架构师进阶Java架构师进阶

什么是Swagger?

Swagger是什么:THE WORLD’S MOST POPULAR API TOOLING

根据官网的介绍:

Swagger Inspector:测试API和生成OpenAPI的开发工具。Swagger Inspector的建立是为了解决开发者的三个主要目标。

执行简单的API测试

生成OpenAPI文档

探索新的API功能

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

我的理解Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。根据我的使用,当然我只是最简单的使用,我感觉Swagger有以下几个优点:

Swagger可以整合到代码中,在开发时通过注解,编写注释,自动生成API文档。

将前端后台分开,不会有过分的依赖。

界面清晰,无论是editor的实时展示还是ui的展示都十分人性化,如果自己仅仅用markdown来编写,又要纠结该如何展现,十分痛苦。

构建项目

step1.导入依赖

<!--swagger服务api构建个性包-->io.springfoxspringfox-swagger22.6.1<!--swagger ui界面-->io.springfoxspringfox-swagger-ui2.6.1<!--springboot web服务-->org.springframework.bootspring-boot-starter-web<!--springboot单元测试-->org.springframework.bootspring-boot-starter-testtest

step2.编写swagger配置类

想要使用swagger功能必须提供配置类,主要配置ui界面信息,以及配置扫描位置,swagger会根据配置的路径扫描所有的服务生成api。

其中核心RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller"),在这里配置我们的需要的扫描包位置。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

@Configuration@EnableSwagger2public class SwaggerConfig {@Beanpublic Docket createRestApi() {returnnewDocket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.simple.spring.boot.controller")).paths(PathSelectors.any()).build();}privateApiInfoapiInfo() {returnnewApiInfoBuilder().title("Spring Boot中使用Swagger2构建RESTful APIs").description("myapp").termsOfServiceUrl("http://blog.csdn.net/SimpleWu").version("1.0").build(); }}

step3.编写springboot启动类

@ComponentScan(basePackages={"com.simple.spring.boot.controller"}) 也是需要配置扫描路径。

@SpringBootApplication@ComponentScan(basePackages={"com.simple.spring.boot.controller"}) public class SwaggerApplication {publicstaticvoidmain(String[] args) {SpringApplication.run(SwaggerApplication.class, args); }}

step4.创建前端控制器

@RestController@Api(tags ="swgger测试服务", description ="swgger测试服务")@RequestMapping(value ="/simple/wu")publicclassTestController{@ApiOperation(value="测试POST方法", notes="测试POST方法")@ApiImplicitParam(name ="令牌", value ="ID", required = true, dataType ="token")@RequestMapping(value="hello", method=RequestMethod.POST)publicString post(@RequestBodyString token) { books.put(book.getId(), book);return"success"; }}

@Api(tags = "swgger测试服务", description = "swgger测试服务") 指定某个类提供服务的名字

@ApiOperation(value="测试POST方法", notes="测试POST方法") 指定某个请求的名字

@ApiImplicitParam(name = "令牌", value = "token", required = true, dataType = "String")指定名字对应参数为令牌,以及对应参数字段token,required = true代表这个参数为必填参数,dataType 代表数据类型。

step5.启动服务

从上面的代码中我们指定请求为POST在UI界面上我们会看到一个服务名字为swgger测试服务的大类点击进去后可以看到里面所拥有的请求,如果指定这个请求的类型那么无法进行单元测试,指定后我们会看到一个请求名字叫做测试POST方法的请求并且需要填入必填参数token来完成我们的单元测试。

我们可以直接通过SwaggerApplication类来运行main方法来进行服务,端口号默认为8080.

swagger地址:http://localhost:8080/swagger-ui.html 只需要在地址后面加上swagger-ui.html即可访问

我们访问这个位置即可看到UI界面,界面简洁并且容易上手,我这边就不截图了。

step.总结

swagger官方文档:https://www.baeldung.com/swagger-2-documentation-for-spring-rest-api

swagger的一个最大的优点是能实时同步api与文档。

在项目开发过程中,发生过多次:修改代码但是没有更新文档,前端还是按照老旧的文档进行开发,在联调过程中才发现问题的情况(当然依据开闭原则,对接口的修改是不允许的,但是在项目不稳定阶段,这种情况很难避免)。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

加群直通车:854630135

课堂直通车:点一下就进去啦

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.02.17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
测试服务
测试服务 WeTest 包括标准兼容测试、专家兼容测试、手游安全测试、远程调试等多款产品,服务于海量腾讯精品游戏,涵盖兼容测试、压力测试、性能测试、安全测试、远程调试等多个方向,立体化安全防护体系,保卫您的信息安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档