Swagger介绍-一套流行的API框架

简介: 简介   号称:世界最流行的API框架 官网:http://swagger.io/ 解决什么问题:在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档。 实例代码位置:https://github.com/pumadong/cl-roadshow/tree/master/roadshow-swagger   swagger使用方式   第一种 定义YAML文件,然后可以生成各种语言的代码框架,对于后台程序员来说,较少人会愿意写出一堆YAML格式。

简介

 

号称:世界最流行的API框架

官网:http://swagger.io/

解决什么问题:在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档。

实例代码位置:https://github.com/pumadong/cl-roadshow/tree/master/roadshow-swagger

 

swagger使用方式

 

第一种

定义YAML文件,然后可以生成各种语言的代码框架,对于后台程序员来说,较少人会愿意写出一堆YAML格式。

第二种

swagger有各种语言的插件,可以通过配置及少量代码,生成接口文档及测试界面。

我们多做了:一次性的配置及少量注解代码。

我们不用再做:1、到Wiki中更新接口文档;2、Postman形式的测试;3、Curl形式的测试

 

swagger java使用介绍

 

对于一个SpringMVC项目,使用swagger的配置如下:

pom.xml

 

[html]  view plain  copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. <!-- Swagger -->  
  2. <dependency>  
  3.     <groupId>io.swagger</groupId>  
  4.     <artifactId>swagger-core</artifactId>  
  5.     <version>1.5.8</version>  
  6. </dependency>  
  7. <dependency>  
  8.     <groupId>io.springfox</groupId>  
  9.     <artifactId>springfox-swagger2</artifactId>  
  10.     <version>2.4.0</version>  
  11. </dependency>  
  12. <dependency>  
  13.     <groupId>io.springfox</groupId>  
  14.     <artifactId>springfox-swagger-ui</artifactId>  
  15.     <version>2.4.0</version>  
  16. </dependency>  

 

SwaggerConfiguration.java

 

[java]  view plain  copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. @Configuration  
  2. @EnableSwagger2  
  3. public class SwaggerConfiguration {  
  4.     @Bean  
  5.     public Docket api() {  
  6.         return new Docket(DocumentationType.SWAGGER_2)  
  7.                 .select()  
  8.                 .apis(RequestHandlerSelectors.any())  
  9.                 .paths(PathSelectors.any())  
  10.                 .build();  
  11.     }  
  12. }  

 

SwaggerWebMvcConfigurerAdapter.java

 

[java]  view plain  copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. @Configuration  
  2. @EnableWebMvc  
  3. @ComponentScan(basePackages = "com.xx.travel.csc.stat.controller")  
  4. public class SwaggerWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {  
  5.    
  6.     @Bean  
  7.     public ViewResolver viewResolver() {  
  8.         InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();  
  9.         viewResolver.setViewClass(JstlView.class);  
  10.         viewResolver.setPrefix("/WEB-INF/views/");  
  11.         viewResolver.setSuffix(".jsp");  
  12.         return viewResolver;  
  13.     }  
  14.    
  15.     @Bean  
  16.     public MessageSource messageSource() {  
  17.         ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();  
  18.         messageSource.setBasename("messages");  
  19.         return messageSource;  
  20.     }  
  21.     @Override  
  22.     public void addResourceHandlers(ResourceHandlerRegistry registry) {  
  23.         super.addResourceHandlers(registry);  
  24.         registry.addResourceHandler("swagger-ui.html")  
  25.                 .addResourceLocations("classpath:/META-INF/resources/");  
  26.         registry.addResourceHandler("/webjars/**")  
  27.                 .addResourceLocations("classpath:/META-INF/resources/webjars/");  
  28.     }  
  29.     @Override  
  30.     public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {  
  31.         configurer.enable();  
  32.     }  
  33. }  

 

 

Controller实例

然后,只要在我们的Controller里面增加注解 ApiOperation和ApiParam 即可。

 

[java]  view plain  copy
 
 print?在CODE上查看代码片派生到我的代码片
  1. @Controller  
  2. @RequestMapping(value = "/stat")  
  3. public class SwaggerController {  
  4.        
  5.     @ResponseBody  
  6.     @RequestMapping(value = "/helloworld", method = RequestMethod.GET)  
  7.     @ApiOperation(nickname = "swagger-helloworld", value = "Swagger的世界", notes = "测试HelloWorld")  
  8.     public String helloWorld(@ApiParam(value = "昵称") @RequestParam String nickname) {  
  9.         return "Hello world, " + nickname;  
  10.     }  
  11.        
  12.     @ResponseBody  
  13.     @RequestMapping(value = "/objectio", method = RequestMethod.POST)  
  14.     @ApiOperation(nickname = "swagger-objectio", value = "Swagger的ObjectIO", notes = "测试对象输入输出")  
  15.     public SwaggerOutput objectIo(@ApiParam(value = "输入") @RequestBody SwaggerInput input) {  
  16.         SwaggerOutput output = new SwaggerOutput();  
  17.         output.setId(input.getId());  
  18.         output.setName("Swagger");  
  19.         return output;  
  20.     }  
  21. }  

 

Web界面

启动项目,输入Http://Path/swagger-ui.html,就可以给前端展示相关的API文档,并像使用Postman以及Curl命令一样,通过Web界面进行接口测试。

 

 http://blog.csdn.net/puma_dong/article/details/51752099
 

 

相关文章
|
30天前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
51 3
|
1月前
|
数据可视化 Linux API
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
|
3月前
|
JSON Dubbo 测试技术
逐步教你如何在Postman中导入Swagger API
在现代软件开发中,Swagger 和 Postman 作为 API 设计、开发和测试的利器,都被广泛应用。可以将 Swagger 定义的 API 导入到 Postman 中,充分利用 Postman 强大的测试特性对接口进行深入测试。
|
3月前
|
数据可视化 Linux API
使用Docker安装部署Swagger Editor并远程访问编辑API文档
使用Docker安装部署Swagger Editor并远程访问编辑API文档
52 0
|
4月前
|
Dubbo Java 测试技术
提升API文档品质:Swagger annotations (注解)使用教程
Swagger 提供的注解集是其框架中定义 API 规范和文档的重要工具。这些注解在代码里标注重要部分,为 Swagger 的解析工作铺路,进而生成详尽的 API 文档。开发者编写的注释能够被转换成直观的文档,并展现API端点、参数和响应等信息。这不仅提升了开发人员对 API 运作的理解与沟通,也使得测试和集成过程更加顺畅。
|
1月前
|
JSON Java API
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
23 1
|
1月前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务
|
1月前
|
缓存 监控 API
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架
58 0
|
1月前
|
JSON API 数据格式
构建高效Python Web应用:Flask框架与RESTful API设计实践
【2月更文挑战第17天】在现代Web开发中,轻量级框架与RESTful API设计成为了提升应用性能和可维护性的关键。本文将深入探讨如何使用Python的Flask框架来构建高效的Web服务,并通过具体实例分析RESTful API的设计原则及其实现过程。我们将从基本的应用架构出发,逐步介绍如何利用Flask的灵活性进行模块化开发,并结合请求处理、数据验证以及安全性考虑,打造出一个既符合标准又易于扩展的Web应用。
646 4
|
2月前
|
开发框架 JSON .NET
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
初学者不会写接口怎么办?微软Visual Studio 2022无脑式API接口创建——Swagger一键导入APIKit快速测试
76 0