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

简介

 

号称:世界最流行的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?

  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?

  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?

  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?

  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

 

 

时间: 2025-01-21 02:47:05

Swagger介绍-一套流行的API框架的相关文章

细数2014年5个最流行的前端框架

  现如今快要被各种各样的 CSS 前端框架给淹没了,真做的不错的其实也就那么几个.本文将对比五个我认为是现在最好的框架.这些框架每一个都有自己的优缺点和适用的应用类型, 你需要根据自己的需要来选择不同的框架. 例如,如果你的项目简单,就不需要使用一个复杂的框架.又或者,很多框架都是模块化的,你可以只是用你需要的模块,或者把不同框架的模块混到一起使用. 我将要介绍的这些框架的顺序与它们在 GitHub 的流行程度有关.自然,就是从最流行的 Bootstrap 说起. 提示:在接下的几周或者几个月

16个最流行的JavaScript框架[推荐]_javascript技巧

1. jQuery – Javascript Framework jQuery 是最流行的 JavaScript 框架,它简化了HTML 文档遍历.事件处理.动画和Ajax交互. 2. Dojo Javascript Framework Dojo强大的核心使Web开发更加敏捷,它拥有出色的UI工具库,号称 Unbeatable JavaScript Tools. 3. Sencha Ext JS4 Javascript Framework 官方介绍说是最先进的JavaScript框架,用于构建下

推荐16个最流行的JavaScript框架

这篇文章列举了当下最流行的16个JavaScript框架,既包含jQuery和Mootools等常规框架,也有Zepo这种支持智能手机触摸功能的移动JavaScript框架,如果你有更好的框架推荐,欢迎与我们分享. 1.jQuery – Javascript Framework jQuery是最流行的JavaScript框架,它简化了HTML文档遍历.事件处理.动画和Ajax交互. 2.Dojo Javascript Framework Dojo强大的核心使Web开发更加敏捷,它拥有出色的UI工

16款最流行的JavaScript框架

本文列举了16个当前最流行的JavaScript框架.在这个列表中,既包括jQuery和Mootools,也有Zepo移动JavaScript框架. 里面一定有你正在用的或想尝试用的JavaScript框架,看看列表吧! 1.jQuery – Javascript框架 应用最广泛的JavaScript框架,jQuery插件非常之多,涉及LightBox灯箱插件.日期插件.图表插件等各种类型的插件不计其数,OsChina就收录了1000多款jQuery插件. 2. Dojo Javascript框

精选15个国外最流行的CSS框架

CSS框架通常指的是一些CSS文件的集合,这些文件包括网页的基本布局.表单样式.网格或简单结构.以及样式重置.虽然对于小的WEB开发项目来说,CSS框架并不一定适用,但是对于规模较大的团队开发项目而言,CSS框架不仅能加快设计开发速度,而且还能有效解决网站改版中带来的诸多麻烦和问题.这里推荐的15款CSS框架是现在国外最流行的CSS框架,希望能对你的开发有所帮助! 例如: typography.css 基本排版规则 grid.css 基于网格的布局 layout.css 通常的布局 form.c

15个国外最流行的CSS框架(附下载)(1)

15个国外最流行的CSS框架(附下载)(1)

前端验证-现今流行的验证框架有哪些?

问题描述 现今流行的验证框架有哪些? 现在要做一个项目,前端验证框架不知道用什么?谢谢各位,菜鸟一枚. 解决方案 大同小异,我觉得jqueryValidate足够了.别的也类似. 解决方案二: jquery validation plugin http://jqueryvalidation.org/http://www.cnblogs.com/linjiqin/p/3431835.html 解决方案三: 都是javascript的哪个下载量大哪个就最流行的;其实都一样只要好用能满足开发需要就行了

binder-swagger-java v0.5.0,Swagger API 框架

Binder-swagger-java v0.5.0 发布了,这一版的主要更新有: 增加 ref 支持 增加 重用 支持 更多的助手方法 注:保持了向前兼容,现有应用代码不受影响. 只要提供合适的 swagger.json,swagger ui 就能动态生成 web 客户端,让你可以在线浏览 API,构建/发送请求并获得响应. Binder-swagger-java 的目的就是帮助构建 swagger.json 所对应的对象(注:在构建过程中,可以使用 form-binder-java 的 ma

流行的AJAX框架比较:jQuery,Mootools,Dojo,Ext JS

AJAX是web20的基石,现在网上流行几种开源的AJAX框架,比如:jQuery,Mootools,Dojo,Ext JS等等,那么我们到底在什么情况下该使用那个框架?以下是一组摘抄的数据: Ajaxian在2007年底对Ajax工具进行了调查,部分调查结果见下表(其中数字为调查者使用该工具的百分比,详细的请参见网页):http://ajaxian.com/archives/2007-ajax-tools-usage-survey-results Prototype jQuery Ext Sc