mirror of
				https://github.com/go-micro/go-micro.git
				synced 2025-10-30 23:27:41 +02:00 
			
		
		
		
	Move wrapper internally since its not top level relevant
This commit is contained in:
		
							
								
								
									
										2
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.sum
									
									
									
									
									
								
							| @@ -76,6 +76,7 @@ github.com/coreos/etcd v3.3.17+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc | ||||
| github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||
| github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= | ||||
| github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||
| github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f h1:JOrtw2xFKzlg+cbHpyrpLDmnN1HqhBfnX7WDiW7eG2c= | ||||
| github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= | ||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||
| @@ -522,6 +523,7 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn | ||||
| google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= | ||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= | ||||
| google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= | ||||
| google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a h1:Ob5/580gVHBJZgXnff1cZDbG+xLtMVE5mDRTe+nIsX4= | ||||
| google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= | ||||
| google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= | ||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||
|   | ||||
							
								
								
									
										13
									
								
								service.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								service.go
									
									
									
									
									
								
							| @@ -12,9 +12,9 @@ import ( | ||||
| 	"github.com/micro/go-micro/debug/handler" | ||||
| 	"github.com/micro/go-micro/debug/profile" | ||||
| 	"github.com/micro/go-micro/debug/profile/pprof" | ||||
| 	"github.com/micro/go-micro/metadata" | ||||
| 	"github.com/micro/go-micro/plugin" | ||||
| 	"github.com/micro/go-micro/server" | ||||
| 	"github.com/micro/go-micro/util/wrapper" | ||||
| 	"github.com/micro/go-micro/util/log" | ||||
| ) | ||||
|  | ||||
| @@ -27,12 +27,11 @@ type service struct { | ||||
| func newService(opts ...Option) Service { | ||||
| 	options := newOptions(opts...) | ||||
|  | ||||
| 	options.Client = &clientWrapper{ | ||||
| 		options.Client, | ||||
| 		metadata.Metadata{ | ||||
| 			HeaderPrefix + "From-Service": options.Server.Options().Name, | ||||
| 		}, | ||||
| 	} | ||||
| 	// service name | ||||
| 	serviceName := options.Server.Options().Name | ||||
|  | ||||
| 	// wrap client to inject From-Service header on any calls | ||||
| 	options.Client = wrapper.FromService(serviceName, options.Client) | ||||
|  | ||||
| 	return &service{ | ||||
| 		opts: options, | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package micro | ||||
| package wrapper | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
| @@ -12,6 +12,10 @@ type clientWrapper struct { | ||||
| 	headers metadata.Metadata | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
| 	HeaderPrefix = "Micro-" | ||||
| ) | ||||
| 
 | ||||
| func (c *clientWrapper) setHeaders(ctx context.Context) context.Context { | ||||
| 	// copy metadata | ||||
| 	mda, _ := metadata.FromContext(ctx) | ||||
| @@ -41,3 +45,13 @@ func (c *clientWrapper) Publish(ctx context.Context, p client.Message, opts ...c | ||||
| 	ctx = c.setHeaders(ctx) | ||||
| 	return c.Client.Publish(ctx, p, opts...) | ||||
| } | ||||
| 
 | ||||
| // FromService wraps a client to inject From-Service header into metadata | ||||
| func FromService(name string, c client.Client) client.Client { | ||||
| 	return &clientWrapper{ | ||||
|                 c, | ||||
|                 metadata.Metadata{ | ||||
|                         HeaderPrefix + "From-Service": name, | ||||
|                 }, | ||||
|         } | ||||
| } | ||||
| @@ -1,4 +1,4 @@ | ||||
| package micro | ||||
| package wrapper | ||||
| 
 | ||||
| import ( | ||||
| 	"context" | ||||
		Reference in New Issue
	
	Block a user