swagger使用介绍

1. 简介

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

官网:http://swagger.io/

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

2. swagger使用方式

2.1. 第一种

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

2.2. 第二种

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

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

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

3. swagger java使用介绍

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

3.1. pom.xml

<!-- Swagger -->
<dependency>
     <groupId>io.swagger</groupId>
     <artifactId>swagger-core</artifactId>
     <version> 1.5 . 8 </version>
</dependency>
<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger2</artifactId>
     <version> 2.4 . 0 </version>
</dependency>
<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger-ui</artifactId>
     <version> 2.4 . 0 </version>
</dependency>

3.2. SwaggerConfiguration.java

@Configuration
@EnableSwagger2
public  class  SwaggerConfiguration {
     @Bean
     public  Docket api() {
         return  new  Docket(DocumentationType.SWAGGER_2)
                 .select()
                 .apis(RequestHandlerSelectors.any())
                 .paths(PathSelectors.any())
                 .build();
     }
}

3.3. SwaggerWebMvcConfigurerAdapter.java

@Configuration
@EnableWebMvc
@ComponentScan (basePackages =  "com.controller" )
public  class  SwaggerWebMvcConfigurerAdapter  extends  WebMvcConfigurerAdapter {
 
     @Bean
     public  ViewResolver viewResolver() {
         InternalResourceViewResolver viewResolver =  new  InternalResourceViewResolver();
         viewResolver.setViewClass(JstlView. class );
         viewResolver.setPrefix( "/WEB-INF/views/" );
         viewResolver.setSuffix( ".jsp" );
         return  viewResolver;
     }
 
     @Bean
     public  MessageSource messageSource() {
         ResourceBundleMessageSource messageSource =  new  ResourceBundleMessageSource();
         messageSource.setBasename( "messages" );
         return  messageSource;
     }
     @Override
     public  void  addResourceHandlers(ResourceHandlerRegistry registry) {
         super .addResourceHandlers(registry);
         registry.addResourceHandler( "swagger-ui.html" )
                 .addResourceLocations( "classpath:/META-INF/resources/" );
         registry.addResourceHandler( "/webjars/**" )
                 .addResourceLocations( "classpath:/META-INF/resources/webjars/" );
     }
     @Override
     public  void  configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
         configurer.enable();
     }
}

3.4. AppInitializer.java

public  class  AppInitializer  extends  AbstractAnnotationConfigDispatcherServletInitializer {
     @Override
     protected  Class<?>[] getRootConfigClasses() {
         return  new  Class[] { SwaggerWebMvcConfigurerAdapter. class  };
     }
     @Override
     protected  Class<?>[] getServletConfigClasses() {
         return  null ;
     }
     @Override
     protected  String[] getServletMappings() {
         return  new  String[] {  "/"  };
     }
}

3.5. Controller实例

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

 

@Controller
@RequestMapping (value =  "/stat" )
public  class  SwaggerController {
     
     @ResponseBody
     @RequestMapping (value =  "/helloworld" , method = RequestMethod.GET)
     @ApiOperation (nickname =  "swagger-helloworld" , value =  "Swagger的世界" , notes =  "测试HelloWorld" )
     public  String helloWorld( @ApiParam (value =  "昵称" @RequestParam  String nickname) {
         return  "Hello world, "  + nickname;
     }
     
     @ResponseBody
     @RequestMapping (value =  "/objectio" , method = RequestMethod.POST)
     @ApiOperation (nickname =  "swagger-objectio" , value =  "Swagger的ObjectIO" , notes =  "测试对象输入输出" )
     public  SwaggerOutput objectIo( @ApiParam (value =  "输入" @RequestBody  SwaggerInput input) {
         SwaggerOutput output =  new  SwaggerOutput();
         output.setId(input.getId());
         output.setName( "Swagger" );
         return  output;
     }
}

3.6. Web界面

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值