欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot結(jié)合Knife4j進(jìn)行API分組授權(quán)管理配置詳解

 更新時(shí)間:2025年08月04日 15:36:54   作者:洛可可白  
在現(xiàn)代的微服務(wù)架構(gòu)中,API 文檔和授權(quán)管理是不可或缺的一部分,本文將介紹如何在 Spring Boot 應(yīng)用中集成 Knife4j,并進(jìn)行 API 分組和授權(quán)管理配置,感興趣的小伙伴可以了解下

在現(xiàn)代的微服務(wù)架構(gòu)中,API 文檔和授權(quán)管理是不可或缺的一部分。Knife4j 是一個(gè)基于 Swagger 的增強(qiáng)解決方案,它提供了更豐富的功能和更好的用戶體驗(yàn)。本文將介紹如何在 Spring Boot 應(yīng)用中集成 Knife4j,并進(jìn)行 API 分組和授權(quán)管理配置。

環(huán)境準(zhǔn)備

首先,確保你的項(xiàng)目中已經(jīng)添加了 Knife4j 的依賴:

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
    <version>4.5.0</version>
</dependency>

配置 Swagger

application.yml 文件中,你可以配置 Swagger 的相關(guān)屬性,包括 API 文檔的路徑、分組配置以及Knife4j的特定設(shè)置:

springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: order
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: '通用模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.common.controller
    - group: '系統(tǒng)模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.system.controller
    - group: '用戶模塊'
      paths-to-match: '/**'
      packages-to-scan: com.example.springboot.user.controller

knife4j:
  enable: true
  setting:
    language: zh_cn
    enable-footer-custom: true
    footer-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"
  basic:
    enable: true
    username: username
    password: password

配置 Swagger OpenAPI

在 Spring Boot 應(yīng)用中,你需要定義一個(gè)配置類來配置 OpenAPI 的信息:

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("API管理系統(tǒng)")
                        .contact(new Contact().name("xiaohelikesleep").email("2109664977@qq.com"))
                        .description("API管理系統(tǒng)文檔")
                        .version("v1.0")
                        .license(new License().name("Apache 2.0").url("http://springdoc.org")))
                .externalDocs(new ExternalDocumentation()
                        .description("外部文檔")
                        .url("https://springshop.wiki.github.org/docs"))
                .addSecurityItem(new SecurityRequirement().addList(HttpHeaders.AUTHORIZATION))
                .components(new Components().addSecuritySchemes(
                        HttpHeaders.AUTHORIZATION,
                        new SecurityScheme()
                                .name(HttpHeaders.AUTHORIZATION)
                                .type(SecurityScheme.Type.HTTP)
                                .scheme("Bearer")
                                .in(SecurityScheme.In.HEADER)
                                .bearerFormat("JWT")
                ));
    }
}

自定義 Swagger UI 底部版權(quán)信息

通過 knife4j.setting.enable-footer-custom 屬性,你可以自定義 Swagger UI 底部的版權(quán)信息:

knife4j:
  enable: true
  setting:
    language: zh_cn
    enable-footer-custom: true
    footer-custom-content: "Apache License 2.0 | Copyright xiao he like sleep"
  basic:
    enable: true
    username: 1
    password: 1

啟動(dòng)應(yīng)用

main 方法中,你可以記錄應(yīng)用啟動(dòng)的信息,包括應(yīng)用名稱、本地 URL 和文檔 URL:

public static void main(String[] args) {
    ConfigurableEnvironment env = SpringApplication.run(ApiApplication.class, args).getEnvironment();
    String applicationName = env.getProperty("spring.application.name");
    String serverPort = env.getProperty("server.port");
    String serverIp = env.getProperty("ip");

    log.info(
            "----------------------------------------------------------%n" +
            "Application: '%s' is running Success!%n" +
            "Local URL:    http://{}:{}%n" +
            "Document:     http://{}:{}/doc.html%n" +
            "----------------------------------------------------------",
            applicationName, serverIp, serverPort, serverIp, serverPort);
}

運(yùn)行效果:

Swagger界面:

配置的另一種寫法

package com.example.order.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Knife4jConfig {
    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI().info(new Info()
                .title("訂單服務(wù)接口文檔")
                .version("1.0")
                .description("訂單服務(wù)相關(guān)接口"));
    }

    @Bean
    public GroupedOpenApi orderApi() {
        return GroupedOpenApi.builder()
                .group("訂單服務(wù)")
                .pathsToMatch("/order/**")
                .packagesToScan("com.example.order.controller")
                .build();
    }
}

到此這篇關(guān)于SpringBoot結(jié)合Knife4j進(jìn)行API分組授權(quán)管理配置詳解的文章就介紹到這了,更多相關(guān)SpringBoot Knife4j進(jìn)行API分組管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論