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

【项目精讲】Swagger接口文档以及使用方式

Swagger

介绍

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)

  1. 前后端分离开发,有利于团队合作
  2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担
  3. 功能测试

如何使用

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,项目中用knife4j框架生成swagger接口文档

  1. pom.xml中添加依赖
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>
  1. 配置类中加入knife4j的相关配置——WebMvcConfiguration.java
/*** 通过knife4j生成接口文档* @return
*/@Beanpublic Docket docket() {ApiInfo apiInfo = new ApiInfoBuilder().title("苍穹外卖项目接口文档").version("2.0").description("苍穹外卖项目接口文档").build();Docket docket = new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.sky.controller")).paths(PathSelectors.any()).build();return docket;}
  1. 设置静态资源映射,否则接口文档页面无法访问——WebMvcConfiguration.java
/*** 设置静态资源映射* addResourceHandlers是重写了父类的方法* 告诉Spring MVC框架,如何处理静态资源请求* @param registry*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {log.info("开始设置静态资源映射…");//  其中/doc.html请求会被映射到类路径META-INF/resources/目录下的资源registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
  1. 通过注解控制生成的接口文档
    1. @Api:用在类上,例如Controller,表示对类的说明
    2. @ApiOperation:用在方法上,例如Controller的方法,说明方法的用途、作用
    3. @ApiModel:用在类上,例如entity、DTO、VO
    4. @ApiModelProperty:用在属性上,描述属性信息

参考

https://www.bilibili.com/video/BV1TP411v7v6/?spm_id_from=333.337.search-card.all.click&vd_source=0d2a9b4260ce977e642d073c6ee2260d

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

相关文章:

  • ThingsBoard通过服务端获取客户端属性或者共享属性
  • (78)删除有序数组中的重复项(79)排序矩阵查找
  • elasticSearch从零整合springboot项目实操
  • 【Linux实践室】Linux高级用户管理实战指南:用户所属组变更操作详解
  • C语言: 字符串函数(下)
  • WPF 数据绑定类属性 和数据更新
  • 使用云服务器搭建CentOS操作系统
  • unity的引用传递和数组的联系
  • Android bug Unresolved reference: BR
  • Unity DOTS1.0 入门(1) ECS机制与概述
  • root管理员用户启动kibana报错
  • 【leetcode面试经典150题】50. 插入区间(C++)
  • 第二期书生浦语大模型训练营第三次笔记
  • SpringMVC(一)【入门】
  • SQL Server详细使用教程
  • Spring Boot项目启动时执行指定的方法
  • 红豆Cat 1开源|项目三: 从0-1设计一款HTTP版本RTU(支持GNSS)产品的软硬件全过程
  • 在 Mac 上配置高级内容缓存设置
  • 算法与数据结构 顺序栈(C++)
  • 【WSL】在WIN11安装并使用Linux子系统(Ubuntu)
  • 【vim 学习系列文章 20 -- a:mode 的值有哪些?】
  • sed命令多行处理
  • Secure Copy Protocol or SCP - 安全拷贝协议
  • Java面试题:什么是Java的值传递和引用传递?列举其应用场景,并说明其特点
  • Java 基于微信小程序的智能停车场管理小程序
  • python基础——类型注解【变量,函数,Union】
  • 人工智能研究生前置知识—科学计算库numpy
  • element UI 设置type=“textarea“ 禁止输入框缩放
  • Rust腐蚀服务器常用参数设定详解
  • 无人机巡检技术革命性变革光伏电站运维管理