Swagger入门学习

tech2023-03-04  105

Swagger入门学习

作用: 前后端分离时期,前端人员和后端人员如果没有一个统一的接口文档,后期对接会产生很多问题,Swagger可以解决此类问题。

Swagger号称世界上最流行的Api框架;RestFul Api文档在线自动生成工具;Api文档和API实时同步

swagger依赖

<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>

创建swaggerConfig配置类

package com.lyj.swagger.config; import org.springframework.context.annotation.Configuration; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 //开启swagger public class SwaggerConfig { }

测试连接:http://localhost:8080/swagger-ui.html (3.0之前的)

配置Swagger

//配置了Swagger实例 通过Docket对象 @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()); }

通过源码分析Docket实例化

通过构造方法可知需要一个DocumentationType对象

在DocumentationType类中三个DocumentationType的静态属性:我们选择SWAGGER_2

配置Swagger通过对象.属性设置

由于 ApiInfo 有 ApiInfo对象,我们可以模仿着写

new ApiInfo( "Api Documentation", "Api Documentation", "1.0", //版本 "urn:tos", DEFAULT_CONTACT, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList());

DEFAULT_CONTACT,则模仿前面的

//配置Swagger信息=apiInfo private ApiInfo apiInfo(){ Contact contact = new Contact("龙泳机", "http://www.longyongji.cn/", "1922053569@qq.com"); return new ApiInfo( "龙泳机的SwaggerApi文档", "Swagger学习", "1.0", "http://www.longyongji.cn/", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList()); }

测试:

注解说明

@Api() :用于类,表示标识这个类是swagger的资源

@ApiOperation(): 用于方法:实现Operation接口,接口注,表示一个http请求的操作

@@ApiParam() 用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)

@ApiModel():用于类 表示对类进行说明,用于参数用实体类接收

@ApiModelProperty():用于方法,字段; 表示对model属性的说明或者数据操作更改

@RestController public class HelloController { @GetMapping(value = "/hello") public String Hello(){ return "hello"; } @PostMapping(value = "/user") public User user(){ return new User(); } @ApiOperation("Hello控制类")//Operation接口,接口注释 @GetMapping(value = "/hello2") public String Hello2(@ApiParam("用户名") String username){//@ApiParam参数接口注释 return "hello"+username; } } @ApiModel("实体类") public class User { @ApiModelProperty("用户名") public String username; @ApiModelProperty("密码") public String password; }

界面效果:@ApiOperation(),@ApiParam(),@ApiModel(),@ApiModelProperty()效果展示

最新回复(0)