sprigboot--组合 swagger
-- 组合 swagger
2023-09-27 14:25:19 时间
maven 依赖
<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>
添加swagger配置文件
package com.config; import org.springframework.context.annotation.Configuration; import springfox.documentation.swagger2.annotations.EnableSwagger2; //配置到springboot @Configuration //开启swagger---页面地址 /swagger-ui.html @EnableSwagger2 public class SwaggerConfig { }
----------------------------------------------------以上swagger就启动起来了--------------------------------------------------------------------
配置swagger
1、配置网页展示的信息
package com.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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; //配置到springboot @Configuration //开启swagger---页面地址 /swagger-ui.html @EnableSwagger2 public class SwaggerConfig { //配置了Swagger 的Docket的bean实例 @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()); } //配置Swagger信息=apiinfo private ApiInfo apiInfo(){ // 作者信息A Contact contact =new Contact("刘锴傧https://www.cnblogs.com/kaibindirver/p/15025758.html", "https://i.cnblogs.com/posts/edit-done;postId=14948036", "tomcat8888@163.com"); return new ApiInfo( "凯宾斯基SwaggerAPi文档", "这个是我文档的描述", "v1.01", "https://i.cnblogs.com/posts/edit-done;postId=14948036", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList()); } }
2、配置扫描接口-和判断当前环境 是否开启 swagger网站访问
设置2个不同环境的配置文件见: https://www.cnblogs.com/kaibindirver/p/15025758.html
package com.config; 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.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; //配置到springboot @Configuration //开启swagger---页面地址 /swagger-ui.html @EnableSwagger2 public class SwaggerConfig { //配置了Swagger 的Docket的bean实例 @Bean public Docket docket(Environment environment){ // 设置要显示的Swagger环境 Profiles profiles= Profiles.of("dev","test");
//获取当前的环境 boolean flag = environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //控制是否开启swagger 设置为false 浏览器就无法访问 .enable(flag) .select() // RequestHandlerSelectors配置要扫描接口的方式,下面是扫描包 .apis(RequestHandlerSelectors.basePackage("com.control")) // none()不扫描,打开swagger是空的 // .apis(RequestHandlerSelectors.none()) //只扫描/kai开头的接口 // .paths(PathSelectors.ant("/kai/**")) .build(); } //配置Swagger信息=apiinfo private ApiInfo apiInfo(){ // 作者信息A Contact contact =new Contact("刘锴傧", "https://i.cnblogs.com/posts/edit-done;postId=14948036", "tomcat8888@163.com"); return new ApiInfo( "凯宾斯基SwaggerAPi文档", "这个是我文档的描述", "v1.01", "https://i.cnblogs.com/posts/edit-done;postId=14948036", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList()); } }
设置分组 的方法 加多一个bean
package com.config; 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.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; //配置到springboot @Configuration //开启swagger---页面地址 /swagger-ui.html @EnableSwagger2 public class SwaggerConfig { //配置了Swagger 的Docket的bean实例 @Bean public Docket docket(Environment environment){ // 设置要显示的Swagger环境 Profiles profiles= Profiles.of("dev","test"); boolean flag = environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) // 设置分组 .groupName("分组-01") //控制是否开启swagger 设置为false 浏览器就无法访问 .enable(flag) .select() // RequestHandlerSelectors配置要扫描接口的方式,下面是扫描包 .apis(RequestHandlerSelectors.basePackage("com.control")) // none()不扫描,打开swagger是空的 // .apis(RequestHandlerSelectors.none()) //只扫描/kai开头的接口 // .paths(PathSelectors.ant("/kai/**")) .build(); } //下面是再创建多一个相同的函数,实现接口分组 @Bean public Docket docket2(Environment environment){ // 设置要显示的Swagger环境 Profiles profiles= Profiles.of("dev","test"); boolean flag = environment.acceptsProfiles(profiles); return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) // 设置分组 .groupName("分组-02") .enable(flag) .select() .apis(RequestHandlerSelectors.basePackage("com.control")) .build(); } //配置Swagger信息=apiinfo private ApiInfo apiInfo(){ // 作者信息A Contact contact =new Contact("刘锴傧", "https://i.cnblogs.com/posts/edit-done;postId=14948036", "tomcat8888@163.com"); return new ApiInfo( "凯宾斯基SwaggerAPi文档", "这个是我文档的描述", "v1.01", "https://i.cnblogs.com/posts/edit-done;postId=14948036", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList()); } }
给接口的请求参数 和 接口命名
给返回的实体类或post接受映射的实体类命名
package com.dao.entity; import io.swagger.annotations.Api; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @NoArgsConstructor @AllArgsConstructor @ToString @Data //注意要有get、set方法 @ApiModel("用户实体类") public class User { @ApiModelProperty("用户名") private String name; @ApiModelProperty("用户年龄") private String age; }
给接口命名
import com.dao.entity.User; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.web.bind.annotation.*; @RestController @Api(tags = "用户相关接口", description = "提供用户相关的 Rest API") public class Swagger { @ApiOperation("post请求提交用户信息") @PostMapping("/aaa") public User delete_User3 (@ApiParam("用户信息") @RequestBody User user) { return new User(); } @ApiOperation("get请求获取用户信息") @GetMapping("/bbb") public User delete_User4 ( @ApiParam(name="用户名",required = true) @RequestParam(value="name") String name, @ApiParam("性别") @RequestParam(value="sex") int sex) { return new User(); } }
可以参考下 : https://blog.csdn.net/zhongzk69/article/details/94987568 (里面有统一配置400 500 的接口响应)
以上看得是狂神的: https://www.bilibili.com/video/BV1Y441197Lw?from=search&seid=17321077544629926329
相关文章
- python -- numpy 基本数据类型,算术运算,组合,分割 函数
- 日期操作类--GregorianCalendar类
- BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
- [管理学]-- 先导片 共赢领导力 笔记
- English trip -- VC(情景课)9 D Reading 阅读练习
- 红蓝对抗--蓝队
- 【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改
- pgtksh -- PostgreSQL Tcl/Tk shell 客户端
- iOS与JavaScript交互三: MessageHandler--window.webkit.messageHandlers.<name>.postMessage(<messageBody>)
- 代码的结合性:继承 扩展 组合 变换--swift暗含的四根主线
- Kind (type theory)-higher-kinded types--type constructor
- Java学习-031-JSON 之五 -- 特定数据获取(JSONObject满足特定键值)
- 嵌入式工程师必备技能--软件仿真
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型(CSOM)基础
- 设计模式(九):Composite组合模式 -- 结构型模式
- 10、ReactJs基础知识10--组件组合 vs 继承
- <数据挖掘导论>读书笔记4--其他分类技术
- Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
- Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
- java 利用ManagementFactory获取jvm,os的一些信息--转
- Linux内核--网络栈实现分析(二)--数据包的传递过程--转
- 【曹工杂谈】Maven IOC 容器-- Guice内部有什么
- OpenGL实践之--环境搭建