yjp 1 рік тому
батько
коміт
114b84f6d1
2 змінених файлів з 11 додано та 1 видалено
  1. 1 1
      go.mod
  2. 10 0
      mqtt_binding/request/request.go

+ 1 - 1
go.mod

@@ -8,6 +8,7 @@ require (
 	git.sxidc.com/service-supports/websocket v1.3.1
 	git.sxidc.com/service-supports/websocket v1.3.1
 	github.com/eclipse/paho.mqtt.golang v1.4.3
 	github.com/eclipse/paho.mqtt.golang v1.4.3
 	github.com/gin-gonic/gin v1.9.1
 	github.com/gin-gonic/gin v1.9.1
+	github.com/go-playground/validator/v10 v10.15.3
 	github.com/goccy/go-json v0.10.2
 	github.com/goccy/go-json v0.10.2
 )
 )
 
 
@@ -19,7 +20,6 @@ require (
 	github.com/gin-contrib/sse v0.1.0 // indirect
 	github.com/gin-contrib/sse v0.1.0 // indirect
 	github.com/go-playground/locales v0.14.1 // indirect
 	github.com/go-playground/locales v0.14.1 // indirect
 	github.com/go-playground/universal-translator v0.18.1 // indirect
 	github.com/go-playground/universal-translator v0.18.1 // indirect
-	github.com/go-playground/validator/v10 v10.15.3 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/gorilla/websocket v1.5.0 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/json-iterator/go v1.1.12 // indirect
 	github.com/klauspost/cpuid/v2 v2.2.5 // indirect
 	github.com/klauspost/cpuid/v2 v2.2.5 // indirect

+ 10 - 0
mqtt_binding/request/request.go

@@ -5,8 +5,11 @@ import (
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client"
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client"
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client/router"
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/mqtt_client/router"
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/response"
 	"git.sxidc.com/go-tools/api_binding/mqtt_binding/response"
+	validator "github.com/go-playground/validator/v10"
 )
 )
 
 
+var validate = validator.New(validator.WithRequiredStructEnabled())
+
 func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any, sendFunc response.SendFunc[O]) bool {
 func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any, sendFunc response.SendFunc[O]) bool {
 	err := json.Unmarshal(item.GetData(), request)
 	err := json.Unmarshal(item.GetData(), request)
 	if err != nil {
 	if err != nil {
@@ -15,5 +18,12 @@ func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request an
 		return false
 		return false
 	}
 	}
 
 
+	err = validate.Struct(request)
+	if err != nil {
+		var zero O
+		sendFunc(c, item, zero, err)
+		return false
+	}
+
 	return true
 	return true
 }
 }