前言:
今天你们对“后端不用框架怎么设计”大约比较珍视,我们都需要知道一些“后端不用框架怎么设计”的相关文章。那么小编也在网摘上收集了一些对于“后端不用框架怎么设计””的相关知识,希望小伙伴们能喜欢,朋友们一起来了解一下吧!现在大部分公司的软件架构都是微服务+前后端分离,说到前后端分离,不仅仅是因为技术架构的迭代更新导致的,主要还是因为产品经历了从无到有从增量到存量的时间,用户的需求已经从能用到好用。产品除了要快速迭代抢占市场外,还需要提高用户体验博取眼球。所以前后端的分离,也衍生除了前端工程师、后端工程师来共同完成一个功能的开发。
所以接下来要考虑的问题,如何制定前后端的接口规范,如何提供接口清单。前面的问题现在已经解决了,所以很多研发团队都是后端工程师写好接口文档后,自己先用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
标签: #后端不用框架怎么设计 #后端不用框架怎么设计出来