龙空技术网

从零搭建后端框架:对方不想说话但扔了个swagger2

LeanPM花少 242

前言:

今天你们对“后端不用框架怎么设计”大约比较珍视,我们都需要知道一些“后端不用框架怎么设计”的相关文章。那么小编也在网摘上收集了一些对于“后端不用框架怎么设计””的相关知识,希望小伙伴们能喜欢,朋友们一起来了解一下吧!

现在大部分公司的软件架构都是微服务+前后端分离,说到前后端分离,不仅仅是因为技术架构的迭代更新导致的,主要还是因为产品经历了从无到有从增量到存量的时间,用户的需求已经从能用到好用。产品除了要快速迭代抢占市场外,还需要提高用户体验博取眼球。所以前后端的分离,也衍生除了前端工程师、后端工程师来共同完成一个功能的开发。

所以接下来要考虑的问题,如何制定前后端的接口规范,如何提供接口清单。前面的问题现在已经解决了,所以很多研发团队都是后端工程师写好接口文档后,自己先用postman测一下,然后写一份接口清单文档,发给前端,如果接口调整了,又要写一个文档。而且经常因为接口文档写的不好、给的太慢,被前端和TL怼。花少也被怼过几次,傲娇的花少闹起了小脾气,所以在工位上放了纸条“花少已死,有事扫支”,同时扔了个swagger2

花少揭秘四部曲:

1、添加Maven依赖

<!-- swagger2 -->

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger2</artifactId>

<version>2.9.2</version>

</dependency>

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger-ui</artifactId>

<version>2.9.2</version>

</dependency>

2、创建Swagger配置

创建Swagger配置

@Configuration

@EnableSwagger2

public class SwaggerConfig {

@Bean

public Docket docket() {

return new Docket(DocumentationType.SWAGGER_2)

.select()

// apis 指定生成API的扫描条件

.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

// 扫描包

//.apis(RequestHandlerSelectors.basePackage("com.zhuqc.framework.controller"))

// paths 指定生成API的path

.paths(PathSelectors.any())

.build()

// 文档信息

.apiInfo(apiInfo());

}

private ApiInfo apiInfo() {

return new ApiInfoBuilder()

.title("花少教你从零搭建后端框架")

.description("API接口文档")

.termsOfServiceUrl(";)

.contact(new Contact("花少", "", ""))

.version("0.0.1")

.build();

}

}

@EnableSwagger2 开启Swagger2

apis 用来指定扫描的条件

RequestHandlerSelectors.basePackage("com.zhuqc.framework.controller"),扫描指定包

RequestHandlerSelectors.withClassAnnotation((Api.class),扫描@Api标注的类

RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class),扫描@ApiOperation标注的方法

RequestHandlerSelectors.any(),总是true

RequestHandlerSelectors.none(),总是false

默认配置是没有@ApiIgnore标注的类和方法

paths 用来指定生成API的path

PathSelectors.any(),总是true

PathSelectors.none(),总是false

PathSelectors.regex(),正则表达式匹配

PathSelectors.ant(),Ant表达式匹配

apiInfo 用来指定文档信息

3、Swagger使用

@Api(description = "花少向你扔了个Swagger2")

@RestController

public class HelloController {

@ApiOperation(value = "需求", notes = "花少的需求")

@ApiImplicitParams({

@ApiImplicitParam(name = "name", value = "需求", required = true)

})

@GetMapping("/hello/{name}")

public String hello(@PathVariable String name) {

return String.format("花少需要你们的 %s!", name);

}

}

常见注解

@Api 修饰整个类,描述整个Controller的作用

@ApiOperation 修饰方法,描述方法的作用

@ApiParam 修饰参数,描述参数的作用

@ApiIgnore 表示忽略当前API

@ApiImplicitParams 描述多个请求参数

@ApiImplicitParam 描述一个请求参数

@ApiModel 如果参数是对象,则在对象所在类上标注,用于描述对象

@ApiModelProperty 如果参数是对象,则在对象所在类的属性上标注,用于描述对象的属性

4、启动项目

准备工作已完成,启动项目后访问Swagger地址:

测试效果如下:

到这里Swagger2已集成完毕,不过我们还是要养成在开发或修改完接口的同时,顺手修改下接口描述,否则咱们帅不过三秒瞬间打脸,只能宣告装死失败!

花有重开日,人无再少年 → 我是花少【少宫主花无缺】#更新不断,创作不易#走过路过不不白piao,留下关注和点赞(公众号同名)@all

标签: #后端不用框架怎么设计 #后端不用框架怎么设计出来