v3 #197

Open
devstigneev wants to merge 3 commits from devstigneev/micro-server-http:v3 into v3
2 changed files with 42 additions and 0 deletions
Showing only changes of commit 31c151ce06 - Show all commits

View File

@ -559,6 +559,7 @@ func (h *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if r.Body != nil { if r.Body != nil {
var buf []byte var buf []byte
buf, err = io.ReadAll(r.Body) buf, err = io.ReadAll(r.Body)
r.Body.Close()
if err != nil && err != io.EOF { if err != nil && err != io.EOF {
h.errorHandler(ctx, handler, w, r, err, http.StatusInternalServerError) h.errorHandler(ctx, handler, w, r, err, http.StatusInternalServerError)
return return

View File

@ -3,6 +3,9 @@ package http
import ( import (
"bytes" "bytes"
"context" "context"
"fmt"
"go.unistack.org/micro/v3/options"
"go.unistack.org/micro/v3/server"
"net/http" "net/http"
"strings" "strings"
"testing" "testing"
@ -54,3 +57,41 @@ func TestFillrequest(t *testing.T) {
t.Fatalf("FillRequest error: %#+v", req) 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)
}