当前位置: 首页 > news >正文

奶爸式Swagger教学

目录

一、导入依赖

二、SwaggerConfig基础编程

三、Swagger 常用说明注解

1.@API

2.@ApiOperation

3.@ApiModel

4.ApiModelProperty

5.@ApiParam

6.@ApilmplicitParam


一、导入依赖

  <!--开启Swagger        --><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.7.0</version></dependency><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.7.0</version></dependency><!-- 引入swagger-ui-layer包 /document.html-->
<!--        访问 http://localhost:8888/document.html--><dependency><groupId>com.zyplayer</groupId><artifactId>swagger-mg-ui</artifactId><version>1.0.6</version></dependency>

二、SwaggerConfig基础编程

import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.util.ArrayList;@Configuration //配置类
@EnableSwagger2// 开启Swagger2的自动配置
public class SwaggerConfig {@Beanpublic Docket webApiConfig() {Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(apiInfo()).select().paths(Predicates.and(PathSelectors.regex("/api/.*"))).build();return docket;}@Beanpublic Docket customApiConfig() {Docket docket = new Docket(DocumentationType.SWAGGER_2).groupName("customApi").apiInfo(customApiInfo()).select().paths(Predicates.and(PathSelectors.regex("/custom/.*"))).build();return docket;}private ApiInfo apiInfo() {//配置文档信息Contact contact = new Contact("**", "184375****@qq.com", "184375****@qq.com");return new ApiInfo("管理系统后端接口文档Swagger", // 标题"管理系统后端接口", // 描述"v1.0", // 版本"184375****@qq.com", // 组织链接contact, // 联系人信息"Apach 2.0 许可", // 许可"许可链接", // 许可连接new ArrayList<>()// 扩展);}private ApiInfo customApiInfo() {return new ApiInfoBuilder().title("用户功能的API文档").description("本文描述了客户功能的api接口定义").version("1.0").contact(new Contact("***", "", "184375****@qq.com")).build();}
}

三、Swagger 常用说明注解

1.@API

是用在Controller类上,表明是swagger资源

拥有两个属性:values、tags

@Api(tags = "管理员最全功能模块")

2.@ApiOperation

是用在Controller方法上,表示一个http请求的操作

value用于方法描述
notes用于提示内容
tags可以重新分组

 @ApiOperation("管理员新增**")

3.@ApiModel

使用场景:在实体类上边使用,标记类时swagger的解析类

 案例:

@ApiModel(value="Manager对象", description="管理员")

4.ApiModelProperty

使用场景:使用在被 @ApiModel 注解的模型类的属性上

案例:

    @ApiModelProperty(value = "管理员姓名")private String name;

5.@ApiParam

参数描述,用在每个参数前面

@PostMapping("/create")
// 注:这里如果使用 @ApiImplicitParam 会出现无法识别的问题
public Response createMerchants(@ApiParam(name = "request", value = "创建商户请求对象") @RequestBody CreateMerchantsRequest request) 

6.@ApilmplicitParam

参数描述,可用在方法头

@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "商户ID")
})
@GetMapping("/{id}")
public Response getMerchantsInfo(@PathVariable Integer id) {return null;
}
http://www.lryc.cn/news/66726.html

相关文章:

  • 入门级的家用洗地机怎么样?入门级洗地机推荐
  • 【面试】Java 反射机制(常见面试题)
  • JavaScript最佳实践
  • 景23转债,海能转债上市价格预测
  • TDengine 部署与使用----时序数据库
  • ShardingSphere系列四(Sharding-JDBC内核原理及核心源码解析)
  • 【2023】华为OD机试真题全语言-题目0234-字符串重新排列
  • Springboot +Flowable,三种常见网关的使用(排他、并行、包容网关)(一)
  • 软考高项(一)信息化发展 ★重点集萃★
  • 大项目准备(2)
  • 计算机网络【2】 子网掩码
  • linux发行家族和发行版及安装软件方式
  • FE_Vue学习笔记 条件渲染[v-show v-if] 列表渲染[v-for] 列表过滤 列表排序
  • 基于C++实现旅行线路设计
  • Lenovo m93 mini 电脑 Hackintosh 黑苹果efi引导文件
  • 【论文阅读】COPA:验证针对中毒攻击的离线强化学习的稳健策略
  • Java笔记_18(IO流)
  • 前端vue3一键打包发布
  • 13 | visual studio与Qt的结合
  • 纯手动搭建大数据集群架构_记录019_集群机器硬盘爆满了_从搭建虚拟机开始_做个200G的虚拟机---大数据之Hadoop3.x工作笔记0179
  • 变量大小:—揭开不同类型的字节数
  • 23.自定义指令
  • OPNET Modeler 例程——停等协议的建模和仿真
  • JavaScript - 基础+WebAPI(笔记)
  • API调用的注意事项及好处!
  • ros2中常用命令,与ros1的区别
  • 利用MySQL语句批量替换指定wordpress文章中的图片路径
  • Linux必会100个命令(六十)curl
  • 物联网硬件安全与整改梳理(1)
  • 【大数据学习篇3】HDFS命令操作与MR单词统计