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

JavaWeb合集18-接口管理Swager

十八、接口管理

1、Swager

使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,就可以做到生成接口文档,以及在线接口调试页面。

官网: https://swagger.io/

Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。

            <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId><version>4.4.0</version></dependency>
  1. 导入knife4j的maven坐标

  2. 在配置类中加入knife4j相关配置


import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport{/*
*
* 在配置类中加入knife4j相关配置*/
@Bean
public OpenAPI springShopOpenAPI() {log.info("knife4j配置成功");return new OpenAPI()// 接口文档标题.info(new Info().title("永恒之月")// 接口文档简介.description("接口管理")// 接口文档版本.version("v1.0")// 开发者联系方式.contact(new Contact().name("yhzy").email("yhzyai@163.com"))).externalDocs(new ExternalDocumentation().description("SpringBoot基础框架").url("http://127.0.0.1:9091"));
}//   下面是分组@Beanpublic GroupedOpenApi groupedOpenApi01(){return GroupedOpenApi.builder().group("管理端接口")// 该分组所在的包.packagesToScan("fun.yhzy.controller.admin").build();}@Beanpublic GroupedOpenApi groupedOpenApi02(){return GroupedOpenApi.builder().group("用户端接口")// 该分组所在的包.packagesToScan("fun.yhzy.controller.user").build();}/*** 设置静态资源映射,拦截器放行资源* @param registry*/protected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}}
  1. yml配置
#knife4j 相关配置
springdoc:swagger-ui:path: /swagger-ui.htmltags-sorter: alphaoperations-sorter: alphaapi-docs:path: /v3/api-docs# knife4j的增强配置,不需要增强可以不配
knife4j:enable: truesetting:language: zh_cn#是否开启密码保护basic:enable: trueusername: rootpassword: 123
1.2 Swager 常用注解

通过注解可以控制生成的接口文档,使接口文档拥有更好的可读性,常用注解如下:

注解说明
@Tag作用于控制类上,name属性用于描述控制类
@Operation作用于控制类的方法上面,summary属性用于描述方法
@Parameter(hidden = true) 、@Operation(hidden = true)、@Hidden这是用于排除或隐藏api
@SchemaDTO实体属性,name属性用于描述属性

创建好后直接访问:后端地址:端口号/doc.html,如:http://localhost:9091/doc.html

http://www.lryc.cn/news/469981.html

相关文章:

  • 背包九讲——二维费用背包问题
  • 【mysql进阶】4-7. 通用表空间
  • 2024 年互联网大厂 1300 多道 JAVA 面试题汇总,包含了程序员的所有技术点
  • 【开源免费】基于SpringBoot+Vue.JS在线文档管理系统(JAVA毕业设计)
  • Linux资源与网络请求
  • RPA技术重塑企业自动化的未来
  • 使用RabbitMQ实现延迟消息的完整指南
  • 阿里员工:阿里工作7年至少得P7吧,快的都P8了,年薪100W是正常的,80才算及格...
  • Django进一步掌握(10月22日)
  • C++从入门到起飞之——红黑树封装map和set 全方位剖析!
  • 【javax maven项目缺少_Maven的依赖管理 引入依赖】
  • 手搓一个定时器
  • AI提示词工程优化Prompt-GPT使用手册(科普一键收藏史上最强攻略)
  • 【数据结构】快速排序(三种实现方式)
  • 利用前向勾子获取神经网络中间层的输出并将其进行保存(示例详解)
  • CTF-RE 从0到N: S盒
  • MT-Pref数据集:包含18种语言的18k实例,涵盖多个领域。实验表明它能有效提升Tower模型在WMT23和FLORES基准测试中的翻译质量。
  • 【C++ 真题】B2099 矩阵交换行
  • AAPL: Adding Attributes to Prompt Learning for Vision-Language Models
  • MySQLDBA修炼之道-开发篇(一)
  • Spring MVC 知识点全解析
  • python 基于FastAPI实现一个简易的在线用户统计 服务
  • glibc中xdr的一个bug
  • Android Framework定制sim卡插入解锁pin码的界面
  • cc2530 Basic RF 讲解 和点灯讲解(1_1)
  • Android H5页面性能分析策略
  • 【前端面试】Typescript
  • 程序语言的内存管理:垃圾回收GC(Java)、手动管理(C语言)与所有权机制(Rust)(手动内存管理、手动管理内存)
  • 研究生论文学习记录
  • 毕业设计选题:基于Django+Vue的图书馆管理系统