From f5e65eb274c37702b8d9635fbc9a0bacc6787fd5 Mon Sep 17 00:00:00 2001
From: shikong <919411476@qq.com>
Date: Tue, 22 Aug 2023 21:49:37 +0800
Subject: [PATCH] =?UTF-8?q?swagger=20=E5=AE=8C=E5=96=84=20+=20requestInter?=
=?UTF-8?q?ceptors=20=E8=AE=B0=E5=BD=95=E8=AE=BF=E9=97=AE=E8=AF=B7?=
=?UTF-8?q?=E6=B1=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/pom.xml | 10 ++++++++++
.../gb28181/api/record/RecordController.java | 3 ++-
.../gb28181/api/record/dto/GetInfoDTO.java | 2 ++
.../docking/gb28181/config/WebConfig.java | 11 +++++++++-
.../interceptor/RequestInterceptor.java | 20 +++++++++++++++++++
5 files changed, 44 insertions(+), 2 deletions(-)
create mode 100644 api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java
diff --git a/api/pom.xml b/api/pom.xml
index 9c77e5b..69be0bd 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -43,10 +43,20 @@
springdoc-openapi-starter-common
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
org.projectlombok
lombok
compile
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+
diff --git a/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java b/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java
index d4dc919..b60dd10 100644
--- a/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java
+++ b/api/src/main/java/cn/skcks/docking/gb28181/api/record/RecordController.java
@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
import org.springdoc.core.annotations.ParameterObject;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
@Tag(name="历史录像")
@@ -26,7 +27,7 @@ public class RecordController {
}
@GetJson("/getInfo")
- public JsonResponse getInfo(@ParameterObject GetInfoDTO dto){
+ public JsonResponse getInfo(@ParameterObject @Validated GetInfoDTO dto){
recordService.requestRecordInfo(dto.getDeviceId());
return JsonResponse.success(null);
}
diff --git a/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java b/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java
index f1bfdab..11c5830 100644
--- a/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java
+++ b/api/src/main/java/cn/skcks/docking/gb28181/api/record/dto/GetInfoDTO.java
@@ -1,11 +1,13 @@
package cn.skcks.docking.gb28181.api.record.dto;
import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
import lombok.Data;
@Schema(title = "查询历史录像")
@Data
public class GetInfoDTO {
+ @NotBlank
@Schema(description = "设备id")
private String deviceId;
}
diff --git a/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java b/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java
index e66565c..f2d0d49 100644
--- a/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java
+++ b/api/src/main/java/cn/skcks/docking/gb28181/config/WebConfig.java
@@ -1,13 +1,22 @@
package cn.skcks.docking.gb28181.config;
+import cn.skcks.docking.gb28181.interceptor.RequestInterceptor;
+import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Slf4j
@Configuration
@RequiredArgsConstructor
public class WebConfig implements WebMvcConfigurer {
-
+ private final RequestInterceptor requestInterceptor;
+ @Override
+ public void addInterceptors(@NotNull InterceptorRegistry registry) {
+ registry.addInterceptor(requestInterceptor)
+ .excludePathPatterns("/swagger-ui/**","/v3/api-docs/**")
+ .addPathPatterns("/**");
+ }
}
diff --git a/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java b/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java
new file mode 100644
index 0000000..d0d0e0c
--- /dev/null
+++ b/api/src/main/java/cn/skcks/docking/gb28181/interceptor/RequestInterceptor.java
@@ -0,0 +1,20 @@
+package cn.skcks.docking.gb28181.interceptor;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+@Slf4j
+@Component
+@SuppressWarnings({"unused"})
+@RequiredArgsConstructor
+public class RequestInterceptor implements HandlerInterceptor {
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+ log.info("{} 访问 {}",request.getRemoteHost(), request.getRequestURI());
+ return true;
+ }
+}