Springboot整合knife4j生成文档

embedded/2024/10/20 15:03:58/

前言

在开发过程中,接口文档是很重要的内容,用于前端对接口的联调,也用于给其他方使用。但是手写相对比较麻烦。

当然也有swagger之类的,但是界面没有那么友好。

官网:

整合步骤

整合依赖

需要根据版本进行,具体可以参考文档

我这里是springboot 2.6.7的,因此使用 OpenAPI2即可

<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.0.0</version>
</dependency>

配置yaml文件

knife4j:enable: true
#  基础权限访问配置basic:enable: true# Basic认证用户名username: test# Basic认证密码password: 123openapi:
#    配置基础信息title: Knife4j官方文档description: "`我是测试`,**你知道吗**# aaa"email: xiaoymin@foxmail.comconcat: 八一菜刀url: https://docs.xiaominfo.comversion: v4.0license: Apache 2.0license-url: https://stackoverflow.com/terms-of-service-url: https://stackoverflow.com/
#    分组配置, 可用于扫描不同的包group:test1:group-name: 测试分组1api-rule: packageapi-rule-resources:- com.walker.knife4j.controller

具体的配置,可以查看配置类和文档

/** Copyright 2017-2022 八一菜刀(xiaoymin@foxmail.com)** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**     http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package com.github.xiaoymin.knife4j.spring.configuration;import com.github.xiaoymin.knife4j.core.model.MarkdownProperty;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;import java.util.List;/**** Knife4j Basic Properties* @since  1.9.6* @author <a href="mailto:xiaoymin@foxmail.com">xiaoymin@foxmail.com</a> * 2019/08/27 15:40*/
@Component
@Data
@ConfigurationProperties(prefix = "knife4j")
public class Knife4jProperties {/*** Whether to enable knife4j enhanced mode*/private boolean enable = false;/*** Basic Document OpenAPI information*/private Knife4jInfoProperties openapi;/*** Enable default cross domain,default is false.*/private boolean cors = false;/*** Enable HTTP Basic authentication,default is false.*/private Knife4jHttpBasic basic;/*** Is it in the production environment? If yes, all documents cannot be accessed at present,default is false*/private boolean production = false;/*** The Personalized configuration*/private Knife4jSetting setting;/*** The group of Custom Markdown resources*/private List<MarkdownProperty> documents;
}

编写测试接口


package com.walker.knife4j.controller;import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;// 1、使用@Api注解,代表目录
@Api(value = "测试控制器", tags = "测试API")
@RestController
public class TestController {// 2、具体接口@ApiOperation("打招呼")@GetMapping("/hello")public String hello() {return "Hello ";}}

其他相关注解可参考:

主要引用的是swagger的,knife4j是在swagger的基础上进行封装

启动项目、访问

注意:需要放开doc.html的白名单访问

访问路径:ip:port/doc.thml

访问后需要输入basic设置的账号密码

就可以看到我们的测试的类和方法了

可以根据注解进行请求参数、返回结果类的配置等

也可以直接使用调试功能对代码进行调试,具体便不再演示,可自行操作。


http://www.ppmy.cn/embedded/129021.html

相关文章

车易泊车位管理相机 —— 智能管理,停车无忧

在现代城市生活中&#xff0c;停车问题一直是困扰着车主和城市管理者的难题。车位难找、停车管理混乱等问题不仅浪费了人们的时间和精力&#xff0c;也影响了城市的交通秩序和形象。而车易泊车位管理相机的出现&#xff0c;为解决这些问题提供了一种高效、智能的解决方案。 一、…

基于SSM+微信小程序的实验室设备故障报修管理系统2

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的实验室设备故障报修管理系统2实现了管理员&#xff0c;用户&#xff0c;维修员三个角色。 管理员功能有 个人中心&#xff0c;用户管理&#xff0c;维修员管理&#…

Unexpected error: java.security.InvalidAlgorithmParameterException

Unexpected error: java.security.InvalidAlgorithmParameterException 1. 异常信息 Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty executing POST https://xxxx/v1/corp/createcorp] with root caus…

特征工程在营销组合建模中的应用:基于因果推断的机器学习方法优化渠道效应估计

在机器学习领域&#xff0c;特征工程是提升模型性能的关键步骤。它涉及选择、创建和转换输入变量&#xff0c;以构建最能代表底层问题结构的特征集。然而&#xff0c;在许多实际应用中&#xff0c;仅仅依靠统计相关性进行特征选择可能导致误导性的结果&#xff0c;特别是在我们…

数据结构与算法JavaScript描述练习------第14章高级算法

1. 写一个程序&#xff0c;使用暴力技巧来寻找最长公共子串。 function lcsBruteForce(word1, word2) {var maxLength 0;var longestSubstring "";for (var i 0; i < word1.length; i) {for (var j i 1; j < word1.length; j) {var substring word1.sub…

Java基于微信小程序的健身小助手打卡预约教学系统(源码+lw+部署文档+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

微信小程序设计尺寸

微信小程序的设计尺寸规范主要基于‌rpx单位&#xff0c;规定屏幕宽度为750rpx。‌ 在设计微信小程序时&#xff0c;设计师通常以‌iPhone 6的屏幕尺寸&#xff08;375px&#xff09;作为基准&#xff0c;因为1rpx等于0.5px&#xff0c;即1rpx等于1物理像素。这意味着在设计稿上…

Debug-029-el-table实现自动滚动分批请求数据

前情提要 最近做了一个小优化&#xff0c;还是关于展示大屏方面的。大屏中使用el-table展示列表数据&#xff0c;最初的方案是将数据全部返回&#xff0c;确实随着数据变多有性能问题&#xff0c;有时请求时间比较长。这里做的优化就是实现列表的滚动到距离底部一定高度时再次请…