|
|
@@ -9,24 +9,28 @@ import (
|
|
|
"google.golang.org/grpc"
|
|
|
)
|
|
|
|
|
|
-func unaryHandler(srv any, method grpc.MethodDesc, option *middleware.Option) http.HandlerFunc {
|
|
|
- return func(ctx http.Context) error {
|
|
|
- http.SetOperation(ctx, option.Path)
|
|
|
+//支持重写
|
|
|
|
|
|
- dec := func(in any) error {
|
|
|
- if err := ctx.Bind(&in); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- if err := ctx.BindQuery(&in); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- // Bind URL path variables
|
|
|
- if err := ctx.BindVars(&in); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- return nil
|
|
|
+var DecFunc = func(ctx http.Context) func(in any) error {
|
|
|
+ return func(in any) error {
|
|
|
+ if err := ctx.Bind(&in); err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
+ if err := ctx.BindQuery(&in); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ // Bind URL path variables
|
|
|
+ if err := ctx.BindVars(&in); err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
+func unaryHandler(srv any, method grpc.MethodDesc, option *middleware.Option) http.HandlerFunc {
|
|
|
+ return func(ctx http.Context) error {
|
|
|
+ http.SetOperation(ctx, option.Path)
|
|
|
+ dec := DecFunc(ctx)
|
|
|
httpCtx := ctx
|
|
|
interceptor := func(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error) {
|
|
|
ctx = middleware.NewOptionContext(ctx, option)
|