mirror of
https://github.com/RemainderTime/spring-boot-base-demo.git
synced 2026-02-06 23:21:11 +08:00
swagger api文档功能完善
This commit is contained in:
42
src/main/java/cn/xf/basedemo/config/SwaggerGroupApi.java
Normal file
42
src/main/java/cn/xf/basedemo/config/SwaggerGroupApi.java
Normal 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();
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
//登录处理
|
||||
|
||||
@@ -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
|
||||
#
|
||||
|
||||
|
||||
@@ -55,6 +55,6 @@ management:
|
||||
show-details: always
|
||||
|
||||
# 日志设置
|
||||
logging:
|
||||
level:
|
||||
root:
|
||||
#logging:
|
||||
# level:
|
||||
# root: DEBUG
|
||||
@@ -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:
|
||||
Reference in New Issue
Block a user