From 479f671edc684782b4d1ad7ef3019f14e66e2090 Mon Sep 17 00:00:00 2001 From: yahaozhang Date: Sun, 20 Jul 2025 14:27:23 +0800 Subject: [PATCH] swagger --- .../yundage/chat/config/OpenApiConfig.java | 39 +++++++++++++++++++ .../yundage/chat/config/SecurityConfig.java | 6 +++ src/main/resources/application.yml | 10 +++++ 3 files changed, 55 insertions(+) create mode 100644 src/main/java/com/yundage/chat/config/OpenApiConfig.java diff --git a/src/main/java/com/yundage/chat/config/OpenApiConfig.java b/src/main/java/com/yundage/chat/config/OpenApiConfig.java new file mode 100644 index 0000000..39853b3 --- /dev/null +++ b/src/main/java/com/yundage/chat/config/OpenApiConfig.java @@ -0,0 +1,39 @@ +package com.yundage.chat.config; + +import io.swagger.v3.oas.models.Components; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.info.License; +import io.swagger.v3.oas.models.security.SecurityRequirement; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OpenApiConfig { + + @Bean + public OpenAPI openAPI() { + return new OpenAPI() + .info(new Info() + .title("云搭公服对话API") + .description("云搭公服对话系统API文档") + .version("v1.0.0") + .contact(new Contact() + .name("Yundage") + .url("https://www.yundage.com") + .email("support@yundage.com")) + .license(new License().name("Private").url("https://www.yundage.com"))) + .addSecurityItem(new SecurityRequirement().addList("Bearer Authentication")) + .components(new Components() + .addSecuritySchemes("Bearer Authentication", createAPIKeyScheme())); + } + + private SecurityScheme createAPIKeyScheme() { + return new SecurityScheme() + .type(SecurityScheme.Type.HTTP) + .bearerFormat("JWT") + .scheme("bearer"); + } +} \ No newline at end of file diff --git a/src/main/java/com/yundage/chat/config/SecurityConfig.java b/src/main/java/com/yundage/chat/config/SecurityConfig.java index 48dd283..612c495 100644 --- a/src/main/java/com/yundage/chat/config/SecurityConfig.java +++ b/src/main/java/com/yundage/chat/config/SecurityConfig.java @@ -54,6 +54,12 @@ public class SecurityConfig { .requestMatchers("/api/auth/**").permitAll() .requestMatchers("/api/public/**").permitAll() .requestMatchers("/health").permitAll() + .requestMatchers("/swagger-ui/**").permitAll() + .requestMatchers("/swagger-ui.html").permitAll() + .requestMatchers("/api-docs/**").permitAll() + .requestMatchers("/v3/api-docs/**").permitAll() + .requestMatchers("/swagger-resources/**").permitAll() + .requestMatchers("/webjars/**").permitAll() .anyRequest().authenticated() ) .sessionManagement(session -> session diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 191656a..5782731 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -39,6 +39,16 @@ app: server: port: 8080 +# SpringDoc OpenAPI configuration +springdoc: + api-docs: + path: /api-docs + swagger-ui: + path: /swagger-ui.html + try-it-out-enabled: true + operationsSorter: method + tagsSorter: alpha + # Logging configuration logging: level: