Swagger快速入门(接口文档)

前沿

后端时代:前端只管静态页面,html==>后端 模板引擎JSP后端为主力

 前后分离时代
  • 后端:后端控制层 ,服务层,数据访问层
  • 前端:前端控制层,数据访问层
  • 伪造后端数据 json
  • 前后端如何交互===>ApI
  • 前后端相对独立 ,松耦合
  • 前后端还可以部署在不同的服务器上

问题产生

  • 前后端集成联调,前后端人员无法做到“及时协商,进早解决”

解决办法:

  • 首先制定schema[计划刚要] 实时更新最新的api降低集成的api
  • 早些年 指定word计划文档

前后端分离

  • 前端测试后端接口postman
  • 后端提供接口 ,需要实时更新最新的消息以及改动

Swagger 诞生

1:比较流行的api文档
2:Restful Api文档在线自动生成工具 => api文档于api定义同步更新
3:直接运行可以在线测试api接口
4:支持多重语言
Swagger官网:https://swagger.io/
在线项目需要使用springbox

  • swagger2
  • ui

快速搭建Swagger

swagger的maven依赖
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
搭建springBoot启动测试项目
@RestMapping("/hello")
@ResponseBody()
public String hello(){
   return "hello SpringBoot";
}
配置Swagger==>config
@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig(){
  //配置相关信息
}

在这里插入图片描述

@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig(){
  @Bean//bean实例
  public Docket docket(){
    return new Docket(Documentationtype.SWAGGER_2)
               .apiInfo(apiInfo)
               .enable()
               //enable 是否启动swagger若为false这在浏览器中不能访问swagger
               .select()
               //RequestHandlerSelectors 配置要扫描的接口的方式
               //any() 都扫描
               //none() 不扫描
               // basepackage:指定要扫描的包
               //withClassAnnotation:扫描类上的注解参数是一个注解的反射
               //withMethodAnnotation:扫描方法上的注解
               .apis(RequestHandlerSelectors.basepackage("com.swagger.controller")
               //paths 指过滤的路径
               .paths()
               .build();
  }
  //配置swagger的相关信息
  private ApiInfo apiInfo(){
  //作者信息
   Contact contact =new Contat (name="",url="", email="");
   return new ApiInfo(
             title="Swagger 的标题",
             description="内容描述",
             version="",
             contact,
             license="",
             licenseUrl="",
             new ArrayList()
   );
 }         
}
面试题

希望Swagger仅在生产环境中使用在发布的时候不用

  • 判断是不是生产环境 flag=true
  • 注入enable(flag)
   //在docket中要传入Environment 参数
  //设置要显示的swagger环境
  Profile profiles = Profiles.of("test","dev");
  //判断是否在当前的设定环境中
  boolean flag=environment.acceptsProfile(profiles);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值