利用Knife4j注解实现Java生成接口文档

文章目录

  • 1、简介
  • 2、生成文档
  • 3、系列注解
    • 3.1、@Api
    • 3.2、@ApiResponses和@ApiResponse
    • 3.3、@ApiOperation
    • 3.4、@Pathyvariable⭐
    • 3.5、@RequestBody
    • 3.6、@ApiOperationSupport
    • 3.7、@ApiImplicitParams 和 @ApiImplicitParam
    • 3.8、@ApiModel
    • 3.9、@ApiModelProperty

​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。
🦅主页:@逐梦苍穹
📕项目专栏:您的一键三连,是我创作的最大动力🌹

1、简介

Knife4j 是一款基于 Swagger 的开源 API 文档生成工具,它提供了一套简洁的界面来展示和测试你的 API。Knife4j 使得 API 文档的编写、查看和测试变得更加方便,同时支持在线调试接口。
以下是 Knife4j 的一些主要特性和优势:

  1. 基于 Swagger: Knife4j 是 Swagger 的一个增强版本,它利用 Swagger 注解来生成 API 文档,能够自动生成接口文档、测试接口等信息。
  2. 美观的界面: Knife4j 提供了一个直观、美观的界面,使得 API 文档更易于阅读和理解。它支持显示接口的请求和响应参数、响应示例、参数类型等详细信息。
  3. 在线调试: Knife4j 允许用户在界面中直接进行 API 接口的测试和调试,无需额外的工具。你可以在文档页面直接输入参数,模拟请求,并查看实时的响应。
  4. 接口分组: 可以将接口按照业务逻辑或其他标准进行分组,使得文档更具有组织性和可读性。
  5. 代码生成: Knife4j 支持通过在线界面生成前端调用 API 的代码片段,包括 Java、Spring Cloud Feign、JavaScript 等。
  6. 易于集成: Knife4j 提供了简单的集成方式,支持 Spring Boot 项目,只需要引入相应的依赖即可。
  7. 自定义配置: Knife4j 提供了一系列的配置选项,可以根据项目的需求进行自定义配置,以满足不同场景的需求。

总体而言,Knife4j 是一个强大、易用的 API 文档生成工具,适用于 Java 和 Spring Boot 项目,使得 API 的设计、测试和文档生成更加便捷。

2、生成文档

在springboot工程中,生成后端接口文档是非常重要的。
首先是引入依赖:

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>${knife4j}</version>
</dependency>

如果springboot启动的时候显示:
应用程序上下文对象异常-启动bean“documentationPluginsBootstrapper”失败,则导入:

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>6.0.18.Final</version>
</dependency>

或在父工程的pom.xml文件中添加:

<parent><artifactId>spring-boot-starter-parent</artifactId><groupId>org.springframework.boot</groupId><version>2.7.3</version>
</parent>

最后,启动springboot工程,访问http://localhost:8080/doc.html即可

3、系列注解

3.1、@Api

@Api用于类,表示标识这个类是swagger的资源
该注解声明在controller类上,最常用的参数是tags:
image.png
tags的内容,就是生成的html文档的标题内容:
image.png
@Api注解的参数如下:

属性名数据类型描述
valueString字段说明
tagsString[]标签说明
descriptionString详细描述
basePathString基本路径可以不配置

3.2、@ApiResponses和@ApiResponse

@ApiResponses:在Rest 接口上使用,用作返回值的描述
image.png
@ApiResponse各参数:

属性名称数据类型说明
codeString响应的HTTP状态码
messageString响应的消息内容
responseClass<?>用于指定响应体的数据结构,
这个属性可以是实体类的 schema 定义

使用二者:
image.png
效果:
image.png

3.3、@ApiOperation

@ApiOperation:用在方法上,说明方法的作用,每一个url资源的定义
image.png
效果:
image.png

3.4、@Pathyvariable⭐

@Pathyvariable是获取get方式,url后面参数,进行参数绑定(单个参数或两个以内参数使用)
image.png
image.png
image.png

3.5、@RequestBody

@RequestBody:在当前对象获取整个http请求的body里面的所有数据(两个以上参数封装成对象使用)

3.6、@ApiOperationSupport

添加在Api中处理请求的方法上,通过此注解的order属性(int),可以指定排序序号,Knife4j会根据这些数字将各业务/请求资源升序排列,例如:@ApiOperationSupport(order = 1)。
image.png
如果出现自定义顺序失灵的情况,原因如下:
image.png
image.png

3.7、@ApiImplicitParams 和 @ApiImplicitParam

这两个注解是对请求参数的说明:
image.png
效果:
image.png

3.8、@ApiModel

用来对实体类进行说明,例如:**@ApiModel(value = "测试对象的value")**
image.png

3.9、@ApiModelProperty

作用在实体类的参数上,如果处理请求时,参数是封装的POJO类型,需要对各请求参数进行说明时,应该在此POJO类型的各属性上使用此注解,通过此注解的value属性配置请求参数的名称,通过requeired属性配置是否必须提交此请求参数(并不具备检查功能)
image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/247649.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCB的层叠结构介绍

1. PCB 单层板 剖去我们不要的&#xff0c;然后放入电阻 但是铜皮非常脆弱&#xff0c;很容易断&#xff0c;所以我们放在一块木板上 我们把铜皮放在基板上 显而易见基板肯定是绝缘的 此时单层板就诞生了 此时问题就诞生了&#xff0c;铜皮过电流是有电的&#xff0c;很容易触…

基于STM32的以太网通信协议选择与实现

在基于STM32的以太网通信中&#xff0c;主要涉及到选择合适的通信协议和实现对应的功能代码。常见的通信协议包括TCP/IP、UDP、HTTP等&#xff0c;选择合适的协议取决于具体应用需求。以下将介绍在STM32上进行以太网通信时&#xff0c;常用的通信协议选择以及对应功能代码的实现…

快快销ShopMatrix 分销商城多端uniapp可编译5端-代理商收益管理:差价奖励和销售额统计

代理商收益管理是一种针对代理商的利润分配模式&#xff0c;主要通过差价奖励和销售额统计来实现。这种模式的核心思想是通过激励代理商的销售行为&#xff0c;提高代理商的积极性和销售效率&#xff0c;从而实现整个销售网络的增长。 差价奖励是代理商收益管理中的一种常见方…

vp9协议梳理-header头文件

vp9协议梳理-header头文件 本文是对vp9视频码流中header中包含的语法元素的一个分类整理&#xff0c;及其对具体的解码过程的影响的分析。 这里写目录标题 vp9协议梳理-header头文件1. Vp9码流中的header头文件2. profile3. show_existing_frame, frame_to_show_map_idx4. fr…

Mac下查看、配置和使用环境变量

Mac下查看、配置和使用环境变量 一&#xff1a;Mac怎么查看环境变量命令 printenv一&#xff1a;这个命令会一次性列出所有环境变量的键值对&#xff0c;输出格式为&#xff1a; VAR1value1 VAR2value2 ...二&#xff1a; 也可以通过给这个命令加上环境变量名参数&#xff0…

C#调用SqlSugar操作达梦数据库报错“无效的表或视图名”

安装达梦数据库后&#xff0c;使用SqlSugar连接测试数据库并基于DBFirst方式创建数据库表对应的类&#xff0c;主要代码如下&#xff1a; SqlSugarClient db new SqlSugarClient(new ConnectionConfig(){DbType DbType.Dm,ConnectionString "Serverlocalhost; User Id…

Nestjs 全局拦截器

一、拦截器 拦截器作用&#xff1a; 在函数执行之前、之后绑定额外的逻辑转换函数的返回结果转换从函数抛出的异常扩展基本函数的行为根据所选条件重写函数 期望接口返回一个标准的json格式&#xff0c;利用拦截器对数据做全局的格式化 {code: "200",data: [],mess…

搭建通讯猫类似的TCP服务端

最近需要一个公网的TCP服务端平台来做4G模组的发包测验&#xff0c;通讯猫(http://www.tongxinmao.com/App/Detail/id/1)貌似使用不了&#xff0c;就干脆在自己的腾讯云上搭建了简单的TCP服务端。 我们搭建可以在服务器上使用Python、Java、C#等语言自行编写服务器程序。 目前是…

AWS 专题学习 P10 (Databases、 Data Analytics)

文章目录 专题总览1. Databases1.1 选择合适的数据库1.2 数据库类型1.3 AWS 数据库服务概述Amazon RDSAmazon AuroraAmazon ElastiCacheAmazon DynamoDBAmazon S3DocumentDBAmazon NeptuneAmazon Keyspaces (for Apache Cassandra)Amazon QLDBAmazon Timestream 2. Data & …

如何将iPad连接到USB设备?这里提供了详细步骤

本文介绍了如何将iPad连接到USB设备。说明适用于所有版本的iPad。 将USB设备与带USB-C端口的iPad一起使用 以下iPad具有USB-C端口: 自2018年第三代以来的iPad Pro机型 自2020年第四代以来的iPad Air机型 自2021年第六代以来的iPad迷你机型 自2022年以来的第十代iPad机型 这些…

QT+VS实现Kmeans++

1、Kmeans的原理如下&#xff1a; &#xff08;1&#xff09;首先选取样本中任一数据点作为第一个聚类中心&#xff1b; &#xff08;2&#xff09;计算样本每一个数据点至现所有聚类中心的最近距离&#xff0c;并记录下来&#xff1b; &#xff08;3&#xff09;逐一挑选所…

2024.1.28 GNSS 学习笔记

1.基于 地球自转改正卫地距 以及 伪距码偏差 重构定位方程&#xff1a; 先验残差计算公式如下所示&#xff1a; 2.观测值如何定权&#xff1f;权重如何确定&#xff1f; 每个卫星的轨钟精度以及电离层模型修正后的误差都有差异&#xff0c;所以我们不能简单的将各个观测值等权…

qemu 抓取linux kernel vmcore

一、背景 在qemu调试linux kernel时 有时我们会遇到dump 情况&#xff0c;这时可以通过gdb 方式连接分析dump&#xff0c; 但实际中我们用得更多的是离线dump 分析&#xff0c;分析的文件通常是vmcore&#xff08;linux kernel panic 生成的coredump文件&#xff09;或者ramdu…

算法沉淀——二分查找(leetcode真题剖析)

算法沉淀——二分查找 01.二分查找02.在排序数组中查找元素的第一个和最后一个位置03.搜索插入位置04.x 的平方根05.山脉数组的峰顶索引06.寻找峰值07.寻找旋转排序数组中的最小值08.LCR 173. 点名 二分查找&#xff08;Binary Search&#xff09;是一种在有序数组中查找特定元…

wordpress找不回密码怎么办?4种方法设置新密码

有些WordPress站长太久不登录后台了&#xff0c;所以就忘记了管理员登录密码&#xff0c;这种情况我们应该怎么找回密码呢&#xff1f;或者设置一个新密码呢&#xff1f;下面boke112百科就跟大家分享4种方法设置WordPress新密码。 方法一、登录页面的“忘记密码&#xff1f;”…

在Windows上安装与配置Apache服务并结合内网穿透工具实现公网远程访问本地内网服务

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

Linux服务器配置与管理(第二次实验)

实验目的及具体要求 目的 1.掌握基于命令行的文件操作 2.掌握基于命令行的目录操作 3.掌握用户账户的命令行操作 4.掌握组账户的命令行操作 5.熟悉磁盘分区操作 6.掌握调整优先级的方法 具体要求 1.掌握基于命令行的文件和目录操作 ①创建测试目录 ②创建文件 ③复…

代码随想录算法训练营DAY6 | 哈希表(1)

DAY5休息一天&#xff0c;今天重启~ 哈希表理论基础&#xff1a;代码随想录 Java hash实现 &#xff1a;java 哈希表-CSDN博客 一、LeetCode 242 有效的字母异位词 题目链接&#xff1a;242.有效的字母异位词 思路&#xff1a;设置字典 class Solution {public boolean isAnag…

设计模式:简单工厂模式

工厂设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。工厂模式属于创建型模式&#xff0c;它在创建对象时提供了一种封装机制&#xff0c;将实际创建对象的代码与使用代码分离。 …

腾讯云幻兽帕鲁服务器创建教程,附4核16G服务器价格表

腾讯云0基础搭建帕鲁服务器4C16G14M服务器稳定无卡顿&#xff0c;先下载SteamCMD&#xff0c;并运行&#xff1b;然后下载Palserver&#xff0c;修改服务ini配置&#xff0c;启动PalServer&#xff0c;进入游戏服务器。腾讯云百科txybk.com分享腾讯云创建幻兽帕鲁服务器教程&am…