v3 #197
@ -172,7 +172,7 @@ func (h *Server) HTTPHandlerFunc(handler interface{}) (http.HandlerFunc, error)
|
||||
hdlr := shdlr.(*httpHandler)
|
||||
fh, mp, err := hdlr.handlers.Search(http.MethodPost, "/"+microMethod)
|
||||
if err == nil {
|
||||
match = true
|
||||
// match = true
|
||||
for k, v := range mp {
|
||||
matches[k] = v
|
||||
}
|
||||
@ -278,7 +278,7 @@ func (h *Server) HTTPHandlerFunc(handler interface{}) (http.HandlerFunc, error)
|
||||
}
|
||||
|
||||
// wrap the handler func
|
||||
h.opts.Hooks.EachNext(func(hook options.Hook) {
|
||||
h.opts.Hooks.EachPrev(func(hook options.Hook) {
|
||||
if h, ok := hook.(server.HookHandler); ok {
|
||||
fn = h(fn)
|
||||
}
|
||||
@ -646,7 +646,7 @@ func (h *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
return err
|
||||
}
|
||||
|
||||
h.opts.Hooks.EachNext(func(hook options.Hook) {
|
||||
h.opts.Hooks.EachPrev(func(hook options.Hook) {
|
||||
if h, ok := hook.(server.HookHandler); ok {
|
||||
fn = h(fn)
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
package http
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"go.unistack.org/micro/v3/codec"
|
||||
"go.unistack.org/micro/v3/metadata"
|
||||
"go.unistack.org/micro/v3/server"
|
||||
@ -14,7 +12,7 @@ var (
|
||||
)
|
||||
|
||||
type rpcRequest struct {
|
||||
rw io.ReadWriter
|
||||
// rw io.ReadWriter
|
||||
payload interface{}
|
||||
codec codec.Codec
|
||||
header metadata.Metadata
|
||||
|
@ -152,7 +152,7 @@ func (s *Server) createSubHandler(sb *httpSubscriber, opts server.Options) broke
|
||||
return nil
|
||||
}
|
||||
|
||||
opts.Hooks.EachNext(func(hook options.Hook) {
|
||||
opts.Hooks.EachPrev(func(hook options.Hook) {
|
||||
if h, ok := hook.(server.HookSubHandler); ok {
|
||||
fn = h(fn)
|
||||
}
|
||||
|
41
util_test.go
41
util_test.go
@ -3,9 +3,6 @@ package http
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"go.unistack.org/micro/v3/options"
|
||||
"go.unistack.org/micro/v3/server"
|
||||
"net/http"
|
||||
"strings"
|
||||
"testing"
|
||||
@ -101,41 +98,3 @@ func TestFillrequest(t *testing.T) {
|
||||
t.Fatalf("FillRequest error: %#+v", req)
|
||||
}
|
||||
}
|
||||
|
||||
func Test_Hook(t *testing.T) {
|
||||
opts := server.Options{}
|
||||
|
||||
var fn server.HandlerFunc = func(fctx context.Context, req server.Request, rsp interface{}) (err error) {
|
||||
fmt.Println("1")
|
||||
return nil
|
||||
}
|
||||
|
||||
var fn2 server.HandlerWrapper = func(server.HandlerFunc) server.HandlerFunc {
|
||||
return func(ctx context.Context, req server.Request, rsp interface{}) error {
|
||||
fmt.Println("2")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
var fn3 server.HandlerWrapper = func(server.HandlerFunc) server.HandlerFunc {
|
||||
return func(ctx context.Context, req server.Request, rsp interface{}) error {
|
||||
fmt.Println("3")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
var fn4 server.HandlerWrapper = func(server.HandlerFunc) server.HandlerFunc {
|
||||
return func(ctx context.Context, req server.Request, rsp interface{}) error {
|
||||
fmt.Println("4")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
opts.Hooks = append(opts.Hooks, fn2, fn3, fn4)
|
||||
|
||||
opts.Hooks.EachNext(func(hook options.Hook) {
|
||||
if h, ok := hook.(server.HandlerWrapper); ok {
|
||||
fn = h(fn)
|
||||
}
|
||||
})
|
||||
|
||||
fn(nil, nil, nil)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user