SpringBoot Knife4j在线API文档框架基本使用

目录
  • 1.Knife4j在线API文档基本使用
  • 2.配置API文档信息

1.Knife4j在线API文档基本使用

Knife4j是一款基于Swagger 2的在线API文档框架。

使用Knife4j的基础步骤:

  • 添加依赖
  • application.properties/application.yml中添加配置
  • 在项目中添加配置类

关于依赖项:

<!-- Knife4j Spring Boot:在线API -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.9</version>
</dependency>

注意:以上依赖项的版本是2.0.9,适用于Spring Boot 2.6以下(不含2.6)版本。

关于配置文件中的配置,主要是开启此框架的增强模式(Knife4j定义的概念),需要添加:

knife4j.enable=true

关于配置类:

import com.github.xiaoymin.knife4j.spring.extension.OpenApiExtensionResolver;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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.EnableSwagger2WebMvc;
/**
 * Knife4j配置类
 *
 * @author java@tedu.cn
 * @version 0.0.1
 */
@Slf4j
@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {
    /**
     * 【重要】指定Controller包路径
     */
    private String basePackage = "cn.tedu.csmall.product.controller";
    /**
     * 分组名称
     */
    private String groupName = "product";
    /**
     * 主机名
     */
    private String host = "http://java.tedu.cn";
    /**
     * 标题
     */
    private String title = "商城在线API文档--商品管理";
    /**
     * 简介
     */
    private String description = "商城在线API文档--商品管理";
    /**
     * 服务条款URL
     */
    private String termsOfServiceUrl = "http://www.apache.org/licenses/LICENSE-2.0";
    /**
     * 联系人
     */
    private String contactName = "Java教学研发部";
    /**
     * 联系网址
     */
    private String contactUrl = "http://java.tedu.cn";
    /**
     * 联系邮箱
     */
    private String contactEmail = "java@tedu.cn";
    /**
     * 版本号
     */
    private String version = "1.0.0";
    @Autowired
    private OpenApiExtensionResolver openApiExtensionResolver;
    public Knife4jConfiguration() {
        log.debug("创建配置类对象:Knife4jConfiguration");
    }
    @Bean
    public Docket docket() {
        String groupName = "1.0.0";
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .host(host)
                .apiInfo(apiInfo())
                .groupName(groupName)
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build()
                .extensions(openApiExtensionResolver.buildExtensions(groupName));
        return docket;
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .contact(new Contact(contactName, contactUrl, contactEmail))
                .version(version)
                .build();
    }
}

注意:务必检查以上配置类中的basePackage属性的值,必须是当前项目中控制器类所在的包!

在项目中已经完成以上步骤后,启动项目,打开浏览器,通过http://localhost:8080/doc.html即可访问在线API文档。

2.配置API文档信息

@Api:添加在控制器类上

  • 此注解的tags属性,可配置模块名称,可以在模块名称中使用编号,例如:01. 品牌管理模块,最终将按照编号升序排列

@ApiOperation:添加在控制器类中处理请求的方法上

  • 此注解的value属性,可配置业务名称

@ApiOperationSupport:添加在控制器类中处理请求的方法上

  • 此注解的order属性(int类型),可配置业务的排序序号,最终将升序排列

@ApiModelProperty:添加在POJO类型的属性上

  • 此注解的value属性,可配置参数名称(说明)
  • 此注解的required属性,可配置是否必须提交此参数
  • 此注解的example属性,可配置此请求参数的示例值

@ApiImplicitParam:添加在控制器类中处理请求的方法上,用于对未封装的请求参数添加说明(例如Long id参数)

  • 必须配置此注解的name属性,取值为方法的参数名称,表示当前注解对哪个参数进行说明
  • 此注解的value属性,可配置参数名称(说明)
  • 此注解的required属性,可配置是否必须提交此参数
  • 此注解的dataType属性,可配置参数的数据类型(例如取值为"long"
  • 此注解的example属性,可配置此请求参数的示例值

@ApiImplicitParams:添加在控制器类中处理请求的方法上,此注解的value属性是@ApiImplicitParam注解的数组类型,当需要使用@ApiImplicitParam对多个未封装参数进行说明时,需要将多个@ApiImplicitParam注解的配置作为当前注解的参数

@ApiOperation("删除类别")
@ApiOperationSupport(order = 200)
@ApiImplicitParams({
    @ApiImplicitParam(name = "id", value = "类别ID", required = true, dataType = "long"),
    @ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "long")
})
@PostMapping("/delete")
public void delete(Long userId, Long id) {}

到此这篇关于SpringBoot Knife4j在线API文档框架基本使用的文章就介绍到这了,更多相关SpringBoot Knife4j 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot集成knife4j实现风格化API文档

    POM引入插件 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <!--在引用时请在maven中央仓库搜索最新版本号 --> <version>2.0.3</version> </dependency> 配置加载 package com.p

  • SpringBoot中整合knife4j接口文档的实践

    在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发,项目维护中或者项目人员更迭,方便后期人员查看.维护 一.界面先赏 1.首页 2.接口文档 3.调试 二.整合 knife4j 1.引入 maven 依赖 <!-- knife4j接口文档 start --> <dependency> <group

  • Java基础之SpringBoot整合knife4j

    插件的特点 1.非常简洁清爽的UI设计,接口的快速搜索. 2.支持个性化设置,个性化设置包含: 请求参数缓存 动态请求参数 RequestMapping接口过滤 HOST代理设置 3.全局参数设置,可以很方便的设置Token等权限认证参数. 4.离线API文档下载: Markdown(已支持) Html(已支持) Word(已支持) OpenApi(已支持) 5.对 json 格式的数据有更好的支持,可以折叠展开等. knife4j官方文档地址 : https://doc.xiaominfo.c

  • Springboot中整合knife4j接口文档的过程详解

    目录 什么是knife4j 界面欣赏 主页 接口文档 调试界面 参数实体 整合 knife4j 引入 maven 依赖 knife4j 配置文件 配置API接口 knife4j 常用特性 全局参数 离线文档 在项目开发过程中,web项目的前后端分离开发,APP开发,需要由前端后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发. 什么是knife4j 简单说knife4j就swagger的升级版API文档的一个框架,但是用起来比swagger方便多了,UI更加丰富. 界面欣赏

  • Springboot整合knife4j与shiro的操作

    一.介绍knife4j 增强版本的Swagger 前端UI,取名knife4j是希望她能像一把匕首一样小巧,轻量,并且功能强悍,更名也是希望把她做成一个为Swagger接口文档服务的通用性解决方案,不仅仅只是专注于前端Ui前端. 二.Spring Boot 整合knife4j 第一步 在Maven中的pom.xml文件引入: <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>kni

  • Springboot2整合knife4j过程解析

    knife4j官网:https://doc.xiaominfo.com/guide/useful.html 这玩艺就swagger的升级版,但是用起来比swagger方便多了,至少不会出现莫名的版本兼容问题 下面记录一个配置示例 1.代码结构 2.pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0&

  • SpringBoot Knife4j在线API文档框架基本使用

    目录 1.Knife4j在线API文档基本使用 2.配置API文档信息 1.Knife4j在线API文档基本使用 Knife4j是一款基于Swagger 2的在线API文档框架. 使用Knife4j的基础步骤: 添加依赖 在application.properties/application.yml中添加配置 在项目中添加配置类 关于依赖项: <!-- Knife4j Spring Boot:在线API --> <dependency> <groupId>com.git

  • SpringBoot集成Swagger2构建在线API文档的代码详解

    第一部分:代码集成 pom.xml <!--swagger2配置--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>i

  • Spring boot整合Springfox生成restful的在线api文档

    目录 Springfox是什么,有什么用? Springfox的依赖 Springfox的配置 测试的Controll Springfox是什么,有什么用? Springfox基于Swagger,能更方便的集成到spring boot 中,Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码.文档或网络流量监测就可以发现和理解服务的能力.当通过

  • SpringBoot如何自动生成API文档详解

    前言 在做项目的时候,如果项目是前后分离的,后端一定要和前端或者是移动端对接接口,那么问题来了,接口是不是要自己写给他们看,一般的会采用Excel或者Word来写,高级一点的就采用API管理平台手工录入,一个项目有上千上万个接口,天啊,这是多么大的工作量,在接口维护的时候更加痛苦,为了解决这样的事我们可以借助 japi这个项目来完成RESTFul文档的自动生成,完全基于注释生成,更多详细配置可查看https://github.com/dounine/japi. 使用说明 克隆项目下来 git c

  • SpringBoot的API文档生成工具SpringDoc使用详解

    目录 前言 SpringDoc简介 使用 集成 从SpringFox迁移 结合SpringSecurity使用 测试 常用配置 总结 参考资料 前言 之前在SpringBoot项目中一直使用的是SpringFox提供的Swagger库,上了下官网发现已经有接近两年没出新版本了!前几天升级了SpringBoot 2.6.x 版本,发现这个库的兼容性也越来越不好了,有的常用注解属性被废弃了居然都没提供替代!无意中发现了另一款Swagger库SpringDoc,试用了一下非常不错,推荐给大家! Spr

  • SpringBoot+Swagger-ui自动生成API文档

    随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远. 这样后段开发好了api 之后就要提交api 文档给前端的朋友.给前端的api 文档各个公司有各个公司的要求,有的是word 有的是 md 文档,或者是 postman 的一个连接. 好了废话不多说说一下 swagger -ui 吧 什么是Swagger Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网:http://swag

  • SpringBoot基于Swagger2构建API文档过程解析

    一.添加依赖 <!--SpringBoot使用Swagger2构建API文档的依赖--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <group

  • SpringBoot集成Swagger构建api文档的操作

    最近在做项目的时候,一直用一个叫做API的东西,controller注解我会写,这个东西我也会用,但是我确实不知道这个东西是个什么,有点神奇.关键还坑了我一次,他的注解会影响到代码的运行,不光是起到注解的作用.所以我就研究了一下. Swagger是什么:THE WORLD'S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具.Swagger Inspector的建立是为了解决开发者的三个主要目标. 1

  • SpringBoot结合Swagger2自动生成api文档的方法

    首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.spri

随机推荐