swagger api文档功能完善

This commit is contained in:
xiongf
2024-12-09 16:41:21 +08:00
parent 6b20b7abb1
commit 4869ddf654
6 changed files with 77 additions and 123 deletions

View File

@@ -0,0 +1,42 @@
package cn.xf.basedemo.config;
import io.swagger.v3.oas.models.ExternalDocumentation;
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 org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
/**
* packageName cn.xf.basedemo.config
* @author remaindertime
* @className SwaggerGroupApi
* @date 2024/12/9
* @description swagger分组配置
*/
@Component
public class SwaggerGroupApi {
@Bean
public OpenAPI springShopOpenAPI() {
return new OpenAPI()
.info(new Info().title("Spring boot脚手架 API")
.description("开箱即用的Spring boot脚手架 API")
.version("v0.0.1")
.contact(new Contact().name("remaindertime").url("https://blog.csdn.net/qq_39818325"))
.license(new License().name("Apache 2.0").url("http://springdoc.org")))
.externalDocs(new ExternalDocumentation()
.description("Spring boot脚手架 Wiki Documentation")
.url("https://springshop.wiki.github.org/docs"));
}
@Bean
public GroupedOpenApi publicApi() {
return GroupedOpenApi.builder()
.group("用戶相关分组")
.pathsToMatch("/user/**")
.build();
}
}

View File

@@ -6,6 +6,9 @@ import cn.xf.basedemo.interceptor.SessionContext;
import cn.xf.basedemo.model.res.LoginInfoRes;
import cn.xf.basedemo.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springdoc.core.annotations.RouterOperations;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -21,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
**/
@RestController(value = "用户控制器")
@RequestMapping("/user")
@Tag(name = "用户控制器")
public class UserController {
@Autowired

View File

@@ -32,13 +32,15 @@ public class TokenInterceptor implements HandlerInterceptor {
//不拦截的请求列表
private static final List<String> EXCLUDE_PATH_LIST = Arrays.asList("/user/login", "/web/login");
private static final List<String> EXCLUDE_PATH_LIST = Arrays.asList("/user/login", "/web/login","/swagger-ui.html","/v3/api-docs","/swagger-ui/index.html");
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestURI = request.getRequestURI();
if (EXCLUDE_PATH_LIST.contains(requestURI)) {
if (EXCLUDE_PATH_LIST.contains(requestURI) ||
requestURI.contains("/swagger-ui") ||
requestURI.contains("/v3/api-docs")) {
return true;
}
//登录处理

View File

@@ -1,4 +1,11 @@
#spring:
# cloud:
# nacos:
# discovery:
# server-addr: 0.0.0.0:8848
# namespace: 34f368d5-a6c6-4f57-a80a-5402de295695
# username:
# password:
# datasource:
# dynamic:
# primary: master
@@ -10,129 +17,33 @@
# connection-test-query: SELECT 1
# datasource:
# master: #${SERVER_ADDRESS}
# url: jdbc:mysql://9.9.9.9:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username:
# url: jdbc:mysql://0.0.0.0:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username: root
# password:
# driver-class-name: com.mysql.cj.jdbc.Driver
# slave:
# url: jdbc:mysql://9.9.9.9:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username:
# url: jdbc:mysql://0.0.0.0:3307/xf-boot-base?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Shanghai
# username: root
# password:
# driver-class-name: com.mysql.cj.jdbc.Driver
# data:
# redis:
# port: 6379 #Redis服务器连接的端口
# host: 9.9.9.9 # Redis服务器的地址
# password: # Redis服务器连接密码默认为空
# timeout: 5000 # 连接超时时间(毫秒)
# port: 6379
# host: 0.0.0.0
# password: 123456
# timeout: 5000
# lettuce: #参考博客 https://blog.csdn.net/weixin_43944305/article/details/124322595
# pool:
# maxActive: 5000 #最大连接数
# maxIdle: 30 #连接池最大空闲连接数.
# minIdle: 5 #连接池最小空闲连接数.
# max-wait: 2000 #从连接池中获取连接时的最大等待时间
# time-between-eviction-runs: 60s #空闲对象逐出器线程的运行间隔时间.空闲连接线程释放周期时间.
# maxActive: 5000
# maxIdle: 30
# minIdle: 5
# max-wait: 2000
# time-between-eviction-runs: 60s
# cluster:
# refresh:
# adaptive: true #拓扑动态感应即客户端能够根据 redis cluster 集群的变化,动态改变客户端的节点情况,完成故障转移。
# period: 60s #刷新redis集群状态周期时间
# adaptive: true
# period: 60s
#
#global:
# rsaPublicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC_F5UQC1QWsu3QsESQBz9M-GDA9Atm0qVSvwIsy568lyRLi-nq3VvvnmgrlL4yTbngFzyfb2Dn35cNCHsBvIaGuCY3_PpzPqMzVpxr2QlEkhEX9atnJQ1rWexS8QeZtPjpiIwoQrChTzXjD_sYUkDrqSykFplyivf0NSO2WqCBdwIDAQAB
# rsaPrivateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAL8XlRALVBay7dCwRJAHP0z4YMD0C2bSpVK_AizLnryXJEuL6erdW--eaCuUvjJNueAXPJ9vYOfflw0IewG8hoa4Jjf8-nM-ozNWnGvZCUSSERf1q2clDWtZ7FLxB5m0-OmIjChCsKFPNeMP-xhSQOupLKQWmXKK9_Q1I7ZaoIF3AgMBAAECgYBxTUA61Ry0oL7U_86HP2TO9G4ZuhmQi9EucMaPXOPvmgYRLRIzCbDbMKc_P-BN3zwYnG57cgSZNz9OoPqeGvP_oVTnkoEpVkCSV-JP2p_DK09LdbDqszJXMrxAkPmWGUw8IRMcTJT1xJJcgzFE6T0CmTo-Vk47AnmqfJD4U6o74QJBAPRjVUJKZnrMSnSqKPDL2ThgTo8h7-KFxl_Z-g724lTOFiCmBpi6nCWAcuacFRrrYqxF-r9c4zdIyR7AvLROql8CQQDIK_kRF52dVtwShciZhyeUBLoi0nWV9F8mMGt60NTEER9zPEgPsv2aVn8h97KMWOwmd2Da4EPm25QxOuaKQC_pAkBczcfXp5co9KElkmR_pHl1jiTm97U3qSM-zPDHc_tYxvXiKgoBP4QCPbfkWMsu8MoEr4Jb3vMt0EcHlZtTQTgzAkAfmNla-lhV4sUgY1_T5EK6GbjsED6hag6u74u3ukkrnexR-10ApWdkumydBwV3I_464DM4uZfeVCDjWIHVpuYpAkEA6QLPztGD4V8Q1PqTEeSF3i68CKPM8vO1_mCH2JD7qsqDQcIKkczj5rTg7hlOKwB9V6gSw4CbnOF6moTooRD-cQ
#redis
#redis:
# datasource:
# token:
# database: 1
# host: 122.112.153.128
# port: 6379
# password: 'redis'
# lettuce:
# pool:
# max-active: 8
# max-wait: -1ms
# max-idle: 8
# min-idle: 0
# timeout: 3000ms
#oss:
# name: alioss
# endpoint: ll-oss-pre.lianlianlvyou.com
# accessKey:
# secretKey:
# bucketName:
# args:
# expireTime: 3600 #过期时间
# contentLengthRange: 2000 #大小限制
#oss:
# name: alioss
# endpoint: ll-oss-pre.lianlianlvyou.com
# accessKey:
# secretKey:
# bucketName:
# args:
# expireTime: 3600 #过期时间
# contentLengthRange: 2000 #大小限制
# redis分布式锁
#redisson:
# enabled: true
# address: 'redis://192.168.10.113:6379'
# password: '123456'
# database: 5
# connectionPoolSize: 4
# connectionMinimumIdleSize: 4
#
## 阿里云rocketmq
#aliyun:
# rocketmq:
# config:
# AccessKey: 1
# SecretKey: 1
# NAMESRV_ADDR: 1
# GROUP_ID: 1
# producer:
# enabled: true
#
#rabbitmq:
# configs:
# order: #实例名称
# host: 192.168.10.111
# port: 5672
# virtualHost: ll-dev
# username: zhangziheng
# password: zhangziheng
# producer:
# enabled: true
# exchange: order_status
# routingKey: ORDER_COMPLETE
# confirmCallback: orderMqConfirmCallback
# commonChange:
# host: 192.168.10.111
# port: 5672
# virtualHost: ll-dev
# username: zhangziheng
# password: zhangziheng
# producer:
# enabled: false
# consumer:
# enabled: true
# subscribeList:
# - queue: 'app-business'
# messageListener: commonChangeMessageListener
#应用可以默认使用的配置文件
#global:
# testCofnig: "aaa"
# tokenSecret: '12435twefdsfsdt4tsdcqw43tregdsgd'
# tokenExpire: 14400 #10天
# smsMqTopic: 'topic_msg'
# smsMqTag: 'tag-sms'
# rsaPrivateKey: 'MIIEpQIBAAKCAQEAuAltXJI4kMQkucWCeLGK4Zyqw7VUp1JYS1GkJb0eJKCgxqJBzwjl8XpStA1hCv9BEX6SEsm/d2T6SDo+G6ySpfV0RQeZ7v32kE9+Eh0BK1Q8wU91nCa1CM9yfBhKXsQ3DKq2am5oLryNWXdKLXZPgoJbuIONG2G4oKakwUMX3aASp3Cj3rNXLea8ilXjFZ+OEp0DuZ4CsasO1MTaBS84mJhnzRNbuhHq5qyrVI02jw7Fim8siIBsmDDHgBd4l9hj6KAAr0jf9JOHaOp+KxfH76taqqaXI5lZIPG7lCP65iBuNNEqDSc21abcPhgvgK5K4xj9p5sG+V1FBISCE0dPrQIDAQABAoIBAG6dg/UTEhq5OhXKyDwBAqfOgbk2IVacoONMg+wG+rorLdeWKRXmlEcLLfB45i409Agu2l+ekY2SzPhiwXfixxYnLSZchkJmtS9SCEWc11oSvJ24Q8mCXmeYQIikFPdW2nurlA7uo4IL5K20jIo8xVd9QOHreAHQP6eX4gkjaZHUIOSJ2P6iffEQCHbXehoyCoTMLdK+1HTuZdO4C9r/S9f/Y1kLWfV5ogEi0DHJpUy37npinfqPp0LHbgpK2WBPOkQIhKvi/4OQ71EcYR5gyrA7nR+rQyPHdhFzTTyfTNTgmuNFuAYJODN5yd62RQd8i6chMx63tYDoYhCjI/ixv8UCgYEA9S1JTacLrFQP+2ryHnn6A3JOhbzj1Y552Nc1XixI9aJMxxCJGI0PvmzDb46BSLfoOz4yaqL1lBS2vyX4tc1rKL82JiokZhDlnFNS0yQgR03484BGPJ3D1+tTWQV0cXyq0nYOI+m9vPBciI1Lw07tJ5ZqJbTabtcu2aq8WrKMuFsCgYEAwCk0WB5TTQJQgjuuFXT/GU4cIl8/Pa3IgF7Ccd1WVkFr9uI6vBpToN+0i1zAb83Ss9maD3eH1Na/7GiKwzZOJj8Yas6b1UsbcHZA1Yt+cI2WUZf8L8QVYJrUtIkbKbG+jdg/KjjZt8mAO8IcXivUhfmj8XUIBClYCezEZmSIVpcCgYEAupHWmUfHo0Bo1QqB6l0pupuuUyj1OxprcG38B4itkHYL9OOJX+xgEalUYzzO9tYz23kuBmWxeRj2I6kyhK4noF85RnuFLUIoZ/gkK9Xu1jPogOuZByGK2XETAMgc3wteNj9t7Tg+kVtbHvJet+YEo75bUgw4uGX5GdxJ7r62RMcCgYEAgJfSaJm6oxFGcTCg+cj2oaeM2k+lEZCHWaiQNQSqr0ROjMOuDI0No92wg4aJXQh+1U5sc6dI5dzkSL9ZBPQFbkDRBUDINf9yGFt6Xa1g6s9FZcrwv8JXj/NtHneWDtvcqi2pb4bl48DbqKHou/hW22VJGd94gthsCxBACkmCl3cCgYEAp2/KJrDnLwAr4h6SVCufRRuNkZSRI+XITkE4xyQ/UDeL+iwCbX38Jcqa2lxCAXCLk++1xilSF/sJbBVkiDorBU9CC0tI5tPJFfHQodbePx1C0SQE8e0F+wtaeR9Z5m5KzHNs2Gciqw+2nJPU9uFQjUfGdXuIZF2bBvtXBWH+Prk='
# rsaPublickey: 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuAltXJI4kMQkucWCeLGK4Zyqw7VUp1JYS1GkJb0eJKCgxqJBzwjl8XpStA1hCv9BEX6SEsm/d2T6SDo+G6ySpfV0RQeZ7v32kE9+Eh0BK1Q8wU91nCa1CM9yfBhKXsQ3DKq2am5oLryNWXdKLXZPgoJbuIONG2G4oKakwUMX3aASp3Cj3rNXLea8ilXjFZ+OEp0DuZ4CsasO1MTaBS84mJhnzRNbuhHq5qyrVI02jw7Fim8siIBsmDDHgBd4l9hj6KAAr0jf9JOHaOp+KxfH76taqqaXI5lZIPG7lCP65iBuNNEqDSc21abcPhgvgK5K4xj9p5sG+V1FBISCE0dPrQIDAQAB'
# appDowloadUrl: 'http://llzby.cn/s/E9TTlQrJ'
# pcAccessUrl: 'http://llzby.cn/s/E9TTlQrJ'
# customServiceUrl: 'https://chaten.soboten.com/chat/h5/v2/index.html?sysnum=caf21f78c499463fbb54077f5c4a8efd&channelid=13&source=1&groupid=d16ef9bdcf3b46dc9726bbb00a7ee45b&partnerid=' #智齿客服 + biz_userId
#

View File

@@ -55,6 +55,6 @@ management:
show-details: always
# 日志设置
logging:
level:
root:
#logging:
# level:
# root: DEBUG

View File

@@ -9,10 +9,5 @@ spring:
file-extension: yml
namespace: 34f368d5-a6c6-4f57-a80a-5402de295695
group: DEFAULT_GROUP
username:
password:
discovery:
server-addr: 9.9.9.9:9
namespace: 34f368d5-a6c6-4f57-a80a-5402de295695
username:
password:
username: nacos
password: