springcloudalibaba完整实现(五)整合swagger2
忙着⼯作,所以这段时间博客就搁置了,多线程也还没有继续往下,慢慢来吧,不断学习的过程才是快乐充实的。本章主要整合swagger2,话不多说,开始搞事情
swagger2
⾸先说明下什么是swagger2,作⽤是什么?
我们现在做java开发,由于前端的出现,导致我们越来越专注于后端(依稀还记得曾经前后端不分离,啥都⼲的情况)前后端分离,我们所做的事情更加专注。只需要提供数据接⼝,由前端调⽤就好了,但是有个问题是,当我们开发了接⼝,接⼝需要的参数,请求⽅式,返回值等等这些东西我们如何告知前端呢?
我⽤过的⽅式:⼝述,接⼝⽂档(word),apipost,showdoc,docway,swagger等等
⼝述,接⼝⽂档都不太靠谱,离职或者丢失啥都别玩了,谁记得住⾃⼰写的每⼀个接⼝参数。。。apipost,showdoc,docway这⼏个其实还是不错的,但是需要写完接⼝⼿动去编辑内容,最后就是swagger了
swagger是接⼝规范,swagger2是 Spring ⽣态系统的该规范的实现
它的作⽤就是接⼝实现⽂档化,让你更快的了解这个接⼝的作⽤,参数,返回值啥的
使⽤
第⼀步,导⼊依赖
<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>
第⼆步,配置⽂件的建⽴
import t.annotation.Bean;
import t.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
spring到底是干啥的
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
1. swagger配置类
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
/
/是否开启 (true 开启 false隐藏。⽣产环境建议隐藏)
//.enable(false)
.select()
//扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有⽅法作为api,⾃⾏更改⾃⼰的包路径,到controller就⾏了 .apis(RequestHandlerSelectors.basePackage("com.ller"))
//指定路径处理PathSelectors.any()代表所有的路径
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//设置⽂档标题(API名称)
.title("SpringBoot中使⽤Swagger2接⼝规范")
//⽂档描述
.description("接⼝说明")
//服务条款URL
.termsOfServiceUrl("localhost:8080/")
//版本号
.version("1.0.0")
.build();
}
}
第三步: 将你需要展⽰的接⼝加上注解内容
@RestController
@RequestMapping(value = "/user")
@Api(value = "测试接⼝", tags = "⽤户管理相关的接⼝", description = "⽤户测试接⼝")
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/update")
//⽅法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
@ApiImplicitParam(name = "userInfo", value = "修改⽤户数据")
//说明是什么⽅法(可以理解为⽅法注释)
@ApiOperation(value = "修改⽤户", notes = "修改⽤户")
public String updateUser(UserInfo userInfo){
userService.updateUser(userInfo);
return "修改成功";
}
@RequestMapping("/delete")
@ApiImplicitParam(name = "userInfo", value = "删除⽤户")
@ApiOperation(value = "删除⽤户", notes = "删除⽤户")
public String deleteUser(UserInfo userInfo){
userService.deleteUser(userInfo);
return "删除成功";
}
@RequestMapping("/queryUserAll")
@ApiOperation(value = "查询所有⽤户", notes = "查询所有⽤户")
public List<UserInfo> queryUserAll(){
// List<LogginInfo> logginInfos = logginFeign.queryAll();
return userService.queryUserAll();
}
好了,完成,就是这么简单,那么⼀起来看下效果:
启动后访问:localhost:端⼝/swagger-ui.html 这个地址固定的,不晓得能不能改,不过⼀般应该没有缺⼼眼去改这个吧,没有必要
⼀个接⼝为啥这么多?
我的接⼝只是使⽤@RequestMapping并没有指定访问⽅式,所以它就把所有的请求⽅式都列出来了。。。修改⽅式就是把
@RequestMapping 访问⽅式写出来了。类上⾯有⼀个,⽅法上⾯也有⼀个,都可以去改,如果该类下所有的请求都是⼀种请求⽅式,⽐
如post,那就再类上设置
好看多了,如果⽅法请求⽅式不⼀样,就在⽅法上⾯修改
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论