Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
c31b73f937 | |||
aee2908ed1 | |||
f85cbcdca2 | |||
8edb53d141 |
12
.gitignore
vendored
12
.gitignore
vendored
@@ -1,3 +1,9 @@
|
||||
# Develop tools
|
||||
/.vscode/
|
||||
/.idea/
|
||||
.idea
|
||||
.vscode
|
||||
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
@@ -5,6 +11,12 @@
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Folders
|
||||
_obj
|
||||
_test
|
||||
_build
|
||||
.DS_Store
|
||||
|
||||
# Test binary, built with `go test -c`
|
||||
*.test
|
||||
|
||||
|
33
requestid.go
33
requestid.go
@@ -2,26 +2,13 @@ package requestid // import "go.unistack.org/micro-wrapper-requestid/v3"
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/textproto"
|
||||
"strings"
|
||||
|
||||
"go.unistack.org/micro/v3/client"
|
||||
"go.unistack.org/micro/v3/logger"
|
||||
"go.unistack.org/micro/v3/metadata"
|
||||
"go.unistack.org/micro/v3/server"
|
||||
"go.unistack.org/micro/v3/util/id"
|
||||
"net/textproto"
|
||||
)
|
||||
|
||||
func init() {
|
||||
requestIDLog := strings.ToLower(DefaultMetadataKey)
|
||||
logger.DefaultContextAttrFuncs = append(logger.DefaultContextAttrFuncs, func(ctx context.Context) []interface{} {
|
||||
if v, ok := ctx.Value(XRequestIDKey{}).(string); ok {
|
||||
return []interface{}{requestIDLog, v}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
type XRequestIDKey struct{}
|
||||
|
||||
// DefaultMetadataKey contains metadata key
|
||||
@@ -81,11 +68,13 @@ var DefaultMetadataFunc = func(ctx context.Context) (context.Context, error) {
|
||||
return ctx, nil
|
||||
}
|
||||
|
||||
type Hook struct{}
|
||||
type hook struct{}
|
||||
|
||||
var Wrapper = &Hook{}
|
||||
func NewHook() *hook {
|
||||
return &hook{}
|
||||
}
|
||||
|
||||
func (w *Hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandler {
|
||||
func (w *hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandler {
|
||||
return func(ctx context.Context, msg server.Message) error {
|
||||
var err error
|
||||
if xid, ok := msg.Header()[DefaultMetadataKey]; ok {
|
||||
@@ -98,7 +87,7 @@ func (w *Hook) ServerSubscriber(next server.FuncSubHandler) server.FuncSubHandle
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
|
||||
func (w *hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
|
||||
return func(ctx context.Context, req server.Request, rsp interface{}) error {
|
||||
var err error
|
||||
if ctx, err = DefaultMetadataFunc(ctx); err != nil {
|
||||
@@ -108,7 +97,7 @@ func (w *Hook) ServerHandler(next server.FuncHandler) server.FuncHandler {
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatchPublish {
|
||||
func (w *hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatchPublish {
|
||||
return func(ctx context.Context, msgs []client.Message, opts ...client.PublishOption) error {
|
||||
var err error
|
||||
if ctx, err = DefaultMetadataFunc(ctx); err != nil {
|
||||
@@ -118,7 +107,7 @@ func (w *Hook) ClientBatchPublish(next client.FuncBatchPublish) client.FuncBatch
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Hook) ClientPublish(next client.FuncPublish) client.FuncPublish {
|
||||
func (w *hook) ClientPublish(next client.FuncPublish) client.FuncPublish {
|
||||
return func(ctx context.Context, msg client.Message, opts ...client.PublishOption) error {
|
||||
var err error
|
||||
if ctx, err = DefaultMetadataFunc(ctx); err != nil {
|
||||
@@ -128,7 +117,7 @@ func (w *Hook) ClientPublish(next client.FuncPublish) client.FuncPublish {
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Hook) ClientCall(next client.FuncCall) client.FuncCall {
|
||||
func (w *hook) ClientCall(next client.FuncCall) client.FuncCall {
|
||||
return func(ctx context.Context, req client.Request, rsp interface{}, opts ...client.CallOption) error {
|
||||
var err error
|
||||
if ctx, err = DefaultMetadataFunc(ctx); err != nil {
|
||||
@@ -138,7 +127,7 @@ func (w *Hook) ClientCall(next client.FuncCall) client.FuncCall {
|
||||
}
|
||||
}
|
||||
|
||||
func (w *Hook) ClientStream(next client.FuncStream) client.FuncStream {
|
||||
func (w *hook) ClientStream(next client.FuncStream) client.FuncStream {
|
||||
return func(ctx context.Context, req client.Request, opts ...client.CallOption) (client.Stream, error) {
|
||||
var err error
|
||||
if ctx, err = DefaultMetadataFunc(ctx); err != nil {
|
||||
|
Reference in New Issue
Block a user