diff --git a/client/grpc/generate.go b/client/grpc/generate.go index 7d19cee..27bb00f 100644 --- a/client/grpc/generate.go +++ b/client/grpc/generate.go @@ -1,3 +1,3 @@ package grpc -//go:generate protoc -I./proto -I. --go-grpc_out=paths=source_relative:./proto --go_out=paths=source_relative:./proto --micro_out=components=micro|rpc,standalone=true,paths=source_relative:./gproto proto/test.proto +//go:generate protoc -I./proto -I. --go-grpc_out=paths=source_relative:./proto --go_out=paths=source_relative:./proto --go-micro_out=components=micro|rpc,standalone=true,paths=source_relative:./gproto proto/test.proto diff --git a/client/grpc/gproto/test_micro.pb.go b/client/grpc/gproto/test_micro.pb.go index 8f55966..c96a579 100644 --- a/client/grpc/gproto/test_micro.pb.go +++ b/client/grpc/gproto/test_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package helloworld import ( @@ -9,8 +11,12 @@ import ( client "github.com/unistack-org/micro/v3/client" ) -func NewTestEndpoints() []*api.Endpoint { - return []*api.Endpoint{} +var ( + TestEndpoints = []api.Endpoint{} +) + +func NewTestEndpoints() []api.Endpoint { + return TestEndpoints } type TestClient interface { diff --git a/client/grpc/gproto/test_micro_rpc.pb.go b/client/grpc/gproto/test_micro_rpc.pb.go index 24a6e51..dadde7a 100644 --- a/client/grpc/gproto/test_micro_rpc.pb.go +++ b/client/grpc/gproto/test_micro_rpc.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package helloworld import ( @@ -122,8 +124,8 @@ func RegisterTestServer(s server.Server, sh TestServer, opts ...server.HandlerOp } h := &testServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Test{h}, append(nopts, opts...)...)) } diff --git a/client/http/generate.go b/client/http/generate.go index 5539fca..6ae4335 100644 --- a/client/http/generate.go +++ b/client/http/generate.go @@ -1,3 +1,3 @@ package http -//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/github.proto +//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --go-micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/github.proto diff --git a/client/http/proto/github_micro.pb.go b/client/http/proto/github_micro.pb.go index c18e0f0..a8fae27 100644 --- a/client/http/proto/github_micro.pb.go +++ b/client/http/proto/github_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: github.proto + package pb import ( @@ -8,21 +10,25 @@ import ( client "github.com/unistack-org/micro/v3/client" ) -func NewGithubEndpoints() []*api.Endpoint { - return []*api.Endpoint{ - &api.Endpoint{ +var ( + GithubEndpoints = []api.Endpoint{ + api.Endpoint{ Name: "Github.LookupUser", Path: []string{"/users/{username}"}, Method: []string{"GET"}, Handler: "rpc", }, - &api.Endpoint{ + api.Endpoint{ Name: "Github.LookupUserWithoutPath", Path: []string{"/{username}"}, Method: []string{"GET"}, Handler: "rpc", }, } +) + +func NewGithubEndpoints() []api.Endpoint { + return GithubEndpoints } type GithubClient interface { diff --git a/client/http/proto/github_micro_http.pb.go b/client/http/proto/github_micro_http.pb.go index c295fdb..77f68a5 100644 --- a/client/http/proto/github_micro_http.pb.go +++ b/client/http/proto/github_micro_http.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: github.proto + package pb import ( @@ -78,8 +80,8 @@ func RegisterGithubServer(s server.Server, sh GithubServer, opts ...server.Handl } h := &githubServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewGithubEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range GithubEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Github{h}, append(nopts, opts...)...)) } diff --git a/codec/generate.go b/codec/generate.go index b211db5..a7e4125 100644 --- a/codec/generate.go +++ b/codec/generate.go @@ -1,3 +1,3 @@ package codec -//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro/v3@v3.2.24 -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto +//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro/v3@v3.2.24 -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --go-micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto diff --git a/codec/proto/test_micro.pb.go b/codec/proto/test_micro.pb.go index 77a771b..e4f57d8 100644 --- a/codec/proto/test_micro.pb.go +++ b/codec/proto/test_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -9,8 +11,12 @@ import ( codec "github.com/unistack-org/micro/v3/codec" ) -func NewTestEndpoints() []*api.Endpoint { - return []*api.Endpoint{} +var ( + TestEndpoints = []api.Endpoint{} +) + +func NewTestEndpoints() []api.Endpoint { + return TestEndpoints } type TestClient interface { diff --git a/codec/proto/test_micro_http.pb.go b/codec/proto/test_micro_http.pb.go index 9170003..d20a10f 100644 --- a/codec/proto/test_micro_http.pb.go +++ b/codec/proto/test_micro_http.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -46,8 +48,8 @@ func RegisterTestServer(s server.Server, sh TestServer, opts ...server.HandlerOp } h := &testServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Test{h}, append(nopts, opts...)...)) } diff --git a/codec/segmentio/generate.go b/codec/segmentio/generate.go index e864960..cb42d85 100644 --- a/codec/segmentio/generate.go +++ b/codec/segmentio/generate.go @@ -1,5 +1,5 @@ package grpc -//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto +//go:generate protoc -I./proto -I. -I/home/vtolstov/.cache/go-path/pkg/mod/github.com/unistack-org/micro-proto@v0.0.1 --go_out=paths=source_relative:./proto --go-micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto -///go:generate protoc -I./proto -I. -I/home/vtolstov/devel/projects/unistack/micro/micro-proto --go_out=paths=source_relative:./proto --micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto +///go:generate protoc -I./proto -I. -I/home/vtolstov/devel/projects/unistack/micro/micro-proto --go_out=paths=source_relative:./proto --go-micro_out=components=micro|http,debug=true,paths=source_relative:./proto proto/test.proto diff --git a/codec/segmentio/proto/test_micro.pb.go b/codec/segmentio/proto/test_micro.pb.go index 03fb52c..6024d62 100644 --- a/codec/segmentio/proto/test_micro.pb.go +++ b/codec/segmentio/proto/test_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -8,8 +10,12 @@ import ( client "github.com/unistack-org/micro/v3/client" ) -func NewTestEndpoints() []*api.Endpoint { - return []*api.Endpoint{} +var ( + TestEndpoints = []api.Endpoint{} +) + +func NewTestEndpoints() []api.Endpoint { + return TestEndpoints } type TestClient interface { diff --git a/codec/segmentio/proto/test_micro_http.pb.go b/codec/segmentio/proto/test_micro_http.pb.go index cc2c360..fe8e2b9 100644 --- a/codec/segmentio/proto/test_micro_http.pb.go +++ b/codec/segmentio/proto/test_micro_http.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -45,8 +47,8 @@ func RegisterTestServer(s server.Server, sh TestServer, opts ...server.HandlerOp } h := &testServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Test{h}, append(nopts, opts...)...)) } diff --git a/flow/flow_test.go b/flow/flow_test.go new file mode 100644 index 0000000..b9d2a1d --- /dev/null +++ b/flow/flow_test.go @@ -0,0 +1,51 @@ +package flow + +import ( + "context" + "testing" + "time" + + pb "github.com/unistack-org/micro-tests/client/http/proto" + "github.com/unistack-org/micro/v3/client" + "github.com/unistack-org/micro/v3/flow" + "github.com/unistack-org/micro/v3/logger" + "github.com/unistack-org/micro/v3/meter" + "github.com/unistack-org/micro/v3/store" + "github.com/unistack-org/micro/v3/tracer" +) + +func TestFlow(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + s := store.DefaultStore + c := client.DefaultClient + m := meter.DefaultMeter + tr := tracer.DefaultTracer + l := logger.DefaultLogger + + f := flow.NewFlow(flow.Context(ctx), flow.Store(s), flow.Client(c), flow.Meter(m), flow.Tracer(tr), flow.Logger(l)) + + if err := f.Init(); err != nil { + t.Fatal(err) + } + + steps := []flow.Step{ + flow.NewCallStep("test", "Github.LookupUser", flow.StepID("test.Github.LookupUser")), + flow.NewCallStep("test", "Github.UpdateUser", flow.StepRequires("test.Github.LookupUser")), + flow.NewCallStep("test", "Github.RemoveUser", flow.StepRequires("test.Github.UpdateUser")), + flow.NewCallStep("test", "Github.MailUser", flow.StepRequires("test.Github.UpdateUser")), + } + w, err := f.WorkflowCreate(ctx, "test", steps...) + if err != nil { + t.Fatal(err) + } + + req := &pb.LookupUserReq{Username: "vtolstov"} + id, err := w.Execute(ctx, req, flow.ExecuteTimeout(2*time.Second)) + if err != nil { + t.Fatal(err) + } + + t.Logf("execution id: %s", id) +} diff --git a/go.mod b/go.mod index 56eb819..66e650c 100644 --- a/go.mod +++ b/go.mod @@ -12,6 +12,7 @@ require ( github.com/unistack-org/micro-api-router-register/v3 v3.2.2 github.com/unistack-org/micro-api-router-static/v3 v3.2.1 github.com/unistack-org/micro-broker-http/v3 v3.3.1 + github.com/unistack-org/micro-client-drpc/v3 v3.0.0-00010101000000-000000000000 github.com/unistack-org/micro-client-grpc/v3 v3.3.3 github.com/unistack-org/micro-client-http/v3 v3.3.11 github.com/unistack-org/micro-codec-grpc/v3 v3.2.1 @@ -20,6 +21,7 @@ require ( github.com/unistack-org/micro-codec-proto/v3 v3.2.2 github.com/unistack-org/micro-codec-segmentio/v3 v3.2.2 github.com/unistack-org/micro-codec-urlencode/v3 v3.0.0 + github.com/unistack-org/micro-codec-xml/v3 v3.2.2 github.com/unistack-org/micro-config-env/v3 v3.3.0 github.com/unistack-org/micro-config-vault/v3 v3.2.9 github.com/unistack-org/micro-meter-victoriametrics/v3 v3.3.1 @@ -30,10 +32,11 @@ require ( github.com/unistack-org/micro-server-http/v3 v3.3.19 github.com/unistack-org/micro-server-tcp/v3 v3.3.2 github.com/unistack-org/micro-wrapper-trace-opentracing/v3 v3.2.0 - github.com/unistack-org/micro/v3 v3.3.17 + github.com/unistack-org/micro/v3 v3.4.2 google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384 - google.golang.org/grpc v1.37.1 + google.golang.org/grpc v1.38.0 google.golang.org/protobuf v1.26.0 + storj.io/drpc v0.0.23 ) //replace github.com/unistack-org/micro-wrapper-trace-opentracing/v3 => ../micro-wrapper-trace-opentracing @@ -41,5 +44,8 @@ require ( //replace github.com/unistack-org/micro-server-grpc/v3 => ../micro-server-grpc //replace github.com/unistack-org/micro-server-http/v3 => ../micro-server-http //replace github.com/unistack-org/micro-client-http/v3 => ../micro-client-http +//replace github.com/unistack-org/micro-client-drpc/v3 => ../micro-client-drpc + //replace github.com/unistack-org/micro/v3 => ../micro + //replace github.com/unistack-org/micro-proto => ../micro-proto diff --git a/go.sum b/go.sum index dd81092..f101aec 100644 --- a/go.sum +++ b/go.sum @@ -419,6 +419,7 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/segmentio/encoding v0.2.17 h1:cgfmPc44u1po1lz5bSgF00gLCROBjDNc7h+H7I20zpc= github.com/segmentio/encoding v0.2.17/go.mod h1:7E68jTSWMnNoYhHi1JbLd7NBSB6XfE4vzqhR88hDBQc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/silas/dag v0.0.0-20210121180416-41cf55125c34 h1:vBfVmA5mZhsQa2jr1FOL9nfA37N/jnbBmi5XUfviVTI= github.com/silas/dag v0.0.0-20210121180416-41cf55125c34/go.mod h1:7RTUFBdIRC9nZ7/3RyRNH1bdqIShrDejd1YbLwgPS+I= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -471,6 +472,8 @@ github.com/unistack-org/micro-codec-segmentio/v3 v3.2.2 h1:XJOjiANaLQRy9Uq2E5b5l github.com/unistack-org/micro-codec-segmentio/v3 v3.2.2/go.mod h1://zU1V0mI9nSKQFzC/pjW7ARu5RzE6sRSss6sxMgeNI= github.com/unistack-org/micro-codec-urlencode/v3 v3.0.0 h1:UJDAoZmI8E4QPKOg4sFNUKDuUAWmQI3LhR5tnKn003Y= github.com/unistack-org/micro-codec-urlencode/v3 v3.0.0/go.mod h1:RgvI2LDxJeYPKNDvFjKvPVaaH53QBSEN2i9y4u8OOKo= +github.com/unistack-org/micro-codec-xml/v3 v3.2.2 h1:xJMMcNjfyFNHA4bzRBrB9EvVf4GJ5Hl0egi5V4SJ3KE= +github.com/unistack-org/micro-codec-xml/v3 v3.2.2/go.mod h1:75yGkasLbY2QsVnjzXiovlXPgsm+ddA43IKspWS5vNo= github.com/unistack-org/micro-config-env/v3 v3.3.0 h1:7YsYImoF4zOXZEwrqOdRjyJhNaRiJU+JCjtoziJMWnE= github.com/unistack-org/micro-config-env/v3 v3.3.0/go.mod h1:3DyAJfejBTpLMXoDv5UE6jEVKeSbeIntLR0SWdrR/oE= github.com/unistack-org/micro-config-vault/v3 v3.2.9 h1:QXdqZSWmImAI7hC0KVRsMruTYm8++RWAdggEM+D8crY= @@ -498,8 +501,11 @@ github.com/unistack-org/micro/v3 v3.2.11/go.mod h1:uGPB8BhDWHj63tR3eaoCd3X+lPtAg github.com/unistack-org/micro/v3 v3.2.24/go.mod h1:iJwCWq2PECMxigfqe6TPC5GLWvj6P94Kk+PTVZGL3w8= github.com/unistack-org/micro/v3 v3.3.13/go.mod h1:98hNcMXp/WyWJwLwCuwrhN1Jm7aCWaRNsMfRjK8Fq+Y= github.com/unistack-org/micro/v3 v3.3.16/go.mod h1:ETGcQQUcjxGaD44LUMX+0fgo8Loh7ExldfIPLvfUmDo= -github.com/unistack-org/micro/v3 v3.3.17 h1:WcyS7InP0DlS/JpRQGLh5sG6VstkdHJbgpMp+gmHmwg= github.com/unistack-org/micro/v3 v3.3.17/go.mod h1:022EOEZZ789hZY3yB5ZSMXU6jLiadBgcNB/cpediV3c= +github.com/unistack-org/micro/v3 v3.3.19/go.mod h1:LXmPfbJnJNvL0kQs8HfnkV3Wya2Wb+C7keVq++RCZnk= +github.com/unistack-org/micro/v3 v3.3.20/go.mod h1:LXmPfbJnJNvL0kQs8HfnkV3Wya2Wb+C7keVq++RCZnk= +github.com/unistack-org/micro/v3 v3.4.2 h1:BySpFG/HBxYeHcNzU8btnFpAT0sGt9aHhXCOb1Z9s9g= +github.com/unistack-org/micro/v3 v3.4.2/go.mod h1:LXmPfbJnJNvL0kQs8HfnkV3Wya2Wb+C7keVq++RCZnk= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/valyala/fastrand v1.0.0 h1:LUKT9aKer2dVQNUi3waewTbKV+7H17kvWFNKs2ObdkI= @@ -512,6 +518,10 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1: github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= +github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= +github.com/zeebo/errs v1.2.2 h1:5NFypMTuSdoySVTqlNs1dEoU21QVamMQJxW/Fii5O7g= +github.com/zeebo/errs v1.2.2/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= @@ -609,6 +619,7 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180622082034-63fc586f45fe/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -741,8 +752,8 @@ google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/grpc v1.37.1 h1:ARnQJNWxGyYJpdf/JXscNlQr/uv607ZPU9Z7ogHi+iI= -google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -796,3 +807,5 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= +storj.io/drpc v0.0.23 h1:MHVOMVoBbQkPuL17GerlGTA9PLwE1HF6zAOYFvWwYG4= +storj.io/drpc v0.0.23/go.mod h1:OSJH7wvH3yKlhnMHwblKJioaaeyI6X8xbXT1SG9woe8= diff --git a/protoc-gen-micro/generate.sh b/protoc-gen-micro/generate.sh new file mode 100755 index 0000000..0aa1071 --- /dev/null +++ b/protoc-gen-micro/generate.sh @@ -0,0 +1,10 @@ +#!/bin/sh -e + +INC=$(go list -f '{{ .Dir }}' -m github.com/unistack-org/micro-proto) +INC_CODEC=$(go list -f '{{ .Dir }}' -m github.com/unistack-org/micro/v3) +ARGS="-I${INC}" +CODEC_ARGS="-I${INC_CODEC}" + +protoc $ARGS $CODEC_ARGS -Iproto --openapiv2_out=disable_default_errors=true,allow_merge=true:./proto/ --go_out=paths=source_relative:./proto/ proto/*.proto + +protoc $ARGS $CODEC_ARGS -Iproto --go-micro_out=components="micro|http",debug=true,tag_path=./proto/,paths=source_relative:./proto/ proto/*.proto diff --git a/protoc-gen-micro/proto/apidocs.swagger.json b/protoc-gen-micro/proto/apidocs.swagger.json new file mode 100644 index 0000000..79cd10d --- /dev/null +++ b/protoc-gen-micro/proto/apidocs.swagger.json @@ -0,0 +1,180 @@ +{ + "swagger": "2.0", + "info": { + "title": "test.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/aml": { + "post": { + "operationId": "TestService_KzAmlRs", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/testResponseAml" + } + } + }, + "tags": [ + "TestService" + ] + } + }, + "/users/image/upload": { + "post": { + "operationId": "TestService_UploadFile", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/testResponseImage" + } + } + }, + "tags": [ + "TestService" + ] + } + }, + "/users/test": { + "get": { + "operationId": "TestService_TestEndpoint", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/testResponse" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "TestService" + ] + } + }, + "/users/{id}": { + "get": { + "operationId": "TestService_UserByID", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/testResponse" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "TestService" + ] + } + }, + "/users/{id}/image": { + "get": { + "operationId": "TestService_UserImageByID", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/codecFrame" + } + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "TestService" + ] + } + } + }, + "definitions": { + "codecFrame": { + "type": "object", + "properties": { + "data": { + "type": "string", + "format": "byte" + } + } + }, + "testKZAmlNewOnlineRs": { + "type": "object", + "properties": { + "rquid": { + "type": "string" + }, + "rqtm": { + "type": "string" + }, + "status": { + "$ref": "#/definitions/testStatus" + }, + "terrStatus": { + "type": "string", + "format": "int64" + }, + "amlStatus": { + "type": "string", + "format": "int64" + } + } + }, + "testResponse": { + "type": "object", + "properties": { + "encodedId": { + "type": "string" + } + } + }, + "testResponseAml": { + "type": "object", + "properties": { + "resp": { + "type": "string" + } + } + }, + "testResponseImage": { + "type": "object" + }, + "testStatus": { + "type": "object", + "properties": { + "statusCode": { + "type": "string", + "format": "int64" + } + } + } + } +} diff --git a/protoc-gen-micro/proto/test.pb.go b/protoc-gen-micro/proto/test.pb.go new file mode 100644 index 0000000..f014a51 --- /dev/null +++ b/protoc-gen-micro/proto/test.pb.go @@ -0,0 +1,684 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.15.6 +// source: test.proto + +package pb + +import ( + _ "github.com/unistack-org/micro-proto/api" + _ "github.com/unistack-org/micro-proto/tag" + codec "github.com/unistack-org/micro/v3/codec" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type RequestAml struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KzAmlNewOnlineRs *KZAmlNewOnlineRs `protobuf:"bytes,1,opt,name=kzAmlNewOnlineRs,proto3" json:"kzAmlNewOnlineRs,omitempty" xml:"KZAmlNewOnlineRs"` +} + +func (x *RequestAml) Reset() { + *x = RequestAml{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestAml) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestAml) ProtoMessage() {} + +func (x *RequestAml) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestAml.ProtoReflect.Descriptor instead. +func (*RequestAml) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{0} +} + +func (x *RequestAml) GetKzAmlNewOnlineRs() *KZAmlNewOnlineRs { + if x != nil { + return x.KzAmlNewOnlineRs + } + return nil +} + +type KZAmlNewOnlineRs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rquid string `protobuf:"bytes,1,opt,name=rquid,proto3" json:"rquid,omitempty" xml:"RqUID"` + Rqtm string `protobuf:"bytes,2,opt,name=rqtm,proto3" json:"rqtm,omitempty" xml:"RqTm"` + Status *Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty" xml:"Status"` + TerrStatus int64 `protobuf:"varint,4,opt,name=terr_status,json=terrStatus,proto3" json:"terr_status,omitempty" xml:"TerrStatus"` + AmlStatus int64 `protobuf:"varint,5,opt,name=aml_status,json=amlStatus,proto3" json:"aml_status,omitempty" xml:"AMLStatus"` +} + +func (x *KZAmlNewOnlineRs) Reset() { + *x = KZAmlNewOnlineRs{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KZAmlNewOnlineRs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KZAmlNewOnlineRs) ProtoMessage() {} + +func (x *KZAmlNewOnlineRs) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KZAmlNewOnlineRs.ProtoReflect.Descriptor instead. +func (*KZAmlNewOnlineRs) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{1} +} + +func (x *KZAmlNewOnlineRs) GetRquid() string { + if x != nil { + return x.Rquid + } + return "" +} + +func (x *KZAmlNewOnlineRs) GetRqtm() string { + if x != nil { + return x.Rqtm + } + return "" +} + +func (x *KZAmlNewOnlineRs) GetStatus() *Status { + if x != nil { + return x.Status + } + return nil +} + +func (x *KZAmlNewOnlineRs) GetTerrStatus() int64 { + if x != nil { + return x.TerrStatus + } + return 0 +} + +func (x *KZAmlNewOnlineRs) GetAmlStatus() int64 { + if x != nil { + return x.AmlStatus + } + return 0 +} + +type Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatusCode int64 `protobuf:"varint,1,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty" xml:"StatusCode"` +} + +func (x *Status) Reset() { + *x = Status{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{2} +} + +func (x *Status) GetStatusCode() int64 { + if x != nil { + return x.StatusCode + } + return 0 +} + +type ResponseAml struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Resp string `protobuf:"bytes,1,opt,name=resp,proto3" json:"resp,omitempty"` +} + +func (x *ResponseAml) Reset() { + *x = ResponseAml{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseAml) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseAml) ProtoMessage() {} + +func (x *ResponseAml) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseAml.ProtoReflect.Descriptor instead. +func (*ResponseAml) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{3} +} + +func (x *ResponseAml) GetResp() string { + if x != nil { + return x.Resp + } + return "" +} + +type RequestImage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Image []byte `protobuf:"bytes,1,opt,name=image,proto3" json:"image,omitempty"` + FileName string `protobuf:"bytes,2,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"` + DocType string `protobuf:"bytes,3,opt,name=doc_type,json=docType,proto3" json:"doc_type,omitempty"` +} + +func (x *RequestImage) Reset() { + *x = RequestImage{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestImage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestImage) ProtoMessage() {} + +func (x *RequestImage) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RequestImage.ProtoReflect.Descriptor instead. +func (*RequestImage) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{4} +} + +func (x *RequestImage) GetImage() []byte { + if x != nil { + return x.Image + } + return nil +} + +func (x *RequestImage) GetFileName() string { + if x != nil { + return x.FileName + } + return "" +} + +func (x *RequestImage) GetDocType() string { + if x != nil { + return x.DocType + } + return "" +} + +type ResponseImage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ResponseImage) Reset() { + *x = ResponseImage{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponseImage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponseImage) ProtoMessage() {} + +func (x *ResponseImage) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponseImage.ProtoReflect.Descriptor instead. +func (*ResponseImage) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{5} +} + +type Request struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *Request) Reset() { + *x = Request{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Request) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Request) ProtoMessage() {} + +func (x *Request) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Request.ProtoReflect.Descriptor instead. +func (*Request) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{6} +} + +func (x *Request) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type Response struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EncodedId string `protobuf:"bytes,1,opt,name=encoded_id,json=encodedId,proto3" json:"encoded_id,omitempty" xml:"encoded_id,attr"` +} + +func (x *Response) Reset() { + *x = Response{} + if protoimpl.UnsafeEnabled { + mi := &file_test_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Response) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Response) ProtoMessage() {} + +func (x *Response) ProtoReflect() protoreflect.Message { + mi := &file_test_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Response.ProtoReflect.Descriptor instead. +func (*Response) Descriptor() ([]byte, []int) { + return file_test_proto_rawDescGZIP(), []int{7} +} + +func (x *Response) GetEncodedId() string { + if x != nil { + return x.EncodedId + } + return "" +} + +var File_test_proto protoreflect.FileDescriptor + +var file_test_proto_rawDesc = []byte{ + 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x65, + 0x73, 0x74, 0x1a, 0x15, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x74, 0x61, + 0x67, 0x2f, 0x74, 0x61, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x0a, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6c, 0x12, 0x5f, 0x0a, 0x10, 0x6b, 0x7a, 0x41, + 0x6d, 0x6c, 0x4e, 0x65, 0x77, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x4b, 0x5a, 0x41, 0x6d, 0x6c, + 0x4e, 0x65, 0x77, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x73, 0x42, 0x1b, 0x9a, 0x84, 0x9e, + 0x03, 0x16, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x4b, 0x5a, 0x41, 0x6d, 0x6c, 0x4e, 0x65, 0x77, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x73, 0x22, 0x52, 0x10, 0x6b, 0x7a, 0x41, 0x6d, 0x6c, 0x4e, + 0x65, 0x77, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x73, 0x22, 0x85, 0x02, 0x0a, 0x10, 0x4b, + 0x5a, 0x41, 0x6d, 0x6c, 0x4e, 0x65, 0x77, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x73, 0x12, + 0x26, 0x0a, 0x05, 0x72, 0x71, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, + 0x9a, 0x84, 0x9e, 0x03, 0x0b, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x52, 0x71, 0x55, 0x49, 0x44, 0x22, + 0x52, 0x05, 0x72, 0x71, 0x75, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x72, 0x71, 0x74, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0f, 0x9a, 0x84, 0x9e, 0x03, 0x0a, 0x78, 0x6d, 0x6c, 0x3a, + 0x22, 0x52, 0x71, 0x54, 0x6d, 0x22, 0x52, 0x04, 0x72, 0x71, 0x74, 0x6d, 0x12, 0x37, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x11, 0x9a, 0x84, 0x9e, 0x03, + 0x0c, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x0b, 0x74, 0x65, 0x72, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x15, 0x9a, 0x84, 0x9e, 0x03, + 0x10, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x54, 0x65, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x52, 0x0a, 0x74, 0x65, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, + 0x0a, 0x61, 0x6d, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x14, 0x9a, 0x84, 0x9e, 0x03, 0x0f, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x41, 0x4d, 0x4c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x52, 0x09, 0x61, 0x6d, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x40, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x0b, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x15, 0x9a, 0x84, 0x9e, 0x03, 0x10, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x21, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x41, 0x6d, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x72, 0x65, 0x73, 0x70, 0x22, 0x5c, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x6f, + 0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6f, + 0x63, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x19, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x22, 0x45, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, + 0x0a, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x1a, 0x9a, 0x84, 0x9e, 0x03, 0x15, 0x78, 0x6d, 0x6c, 0x3a, 0x22, 0x65, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x2c, 0x61, 0x74, 0x74, 0x72, 0x22, 0x52, 0x09, 0x65, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x49, 0x64, 0x32, 0xf2, 0x02, 0x0a, 0x0b, 0x54, 0x65, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x54, 0x65, 0x73, 0x74, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, + 0x0b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x12, 0x0d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, + 0x0b, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x4d, 0x0a, 0x0d, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x44, 0x12, 0x0d, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x0a, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x1a, 0x13, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x22, 0x13, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x3c, 0x0a, 0x07, 0x4b, 0x7a, 0x41, 0x6d, 0x6c, 0x52, 0x73, 0x12, 0x10, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x41, 0x6d, 0x6c, 0x1a, 0x11, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x41, 0x6d, 0x6c, 0x22, + 0x0c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x06, 0x22, 0x04, 0x2f, 0x61, 0x6d, 0x6c, 0x42, 0x0b, 0x5a, + 0x09, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_test_proto_rawDescOnce sync.Once + file_test_proto_rawDescData = file_test_proto_rawDesc +) + +func file_test_proto_rawDescGZIP() []byte { + file_test_proto_rawDescOnce.Do(func() { + file_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_test_proto_rawDescData) + }) + return file_test_proto_rawDescData +} + +var file_test_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_test_proto_goTypes = []interface{}{ + (*RequestAml)(nil), // 0: test.RequestAml + (*KZAmlNewOnlineRs)(nil), // 1: test.KZAmlNewOnlineRs + (*Status)(nil), // 2: test.Status + (*ResponseAml)(nil), // 3: test.ResponseAml + (*RequestImage)(nil), // 4: test.RequestImage + (*ResponseImage)(nil), // 5: test.ResponseImage + (*Request)(nil), // 6: test.Request + (*Response)(nil), // 7: test.Response + (*codec.Frame)(nil), // 8: micro.codec.Frame +} +var file_test_proto_depIdxs = []int32{ + 1, // 0: test.RequestAml.kzAmlNewOnlineRs:type_name -> test.KZAmlNewOnlineRs + 2, // 1: test.KZAmlNewOnlineRs.status:type_name -> test.Status + 6, // 2: test.TestService.TestEndpoint:input_type -> test.Request + 6, // 3: test.TestService.UserByID:input_type -> test.Request + 6, // 4: test.TestService.UserImageByID:input_type -> test.Request + 4, // 5: test.TestService.UploadFile:input_type -> test.RequestImage + 0, // 6: test.TestService.KzAmlRs:input_type -> test.RequestAml + 7, // 7: test.TestService.TestEndpoint:output_type -> test.Response + 7, // 8: test.TestService.UserByID:output_type -> test.Response + 8, // 9: test.TestService.UserImageByID:output_type -> micro.codec.Frame + 5, // 10: test.TestService.UploadFile:output_type -> test.ResponseImage + 3, // 11: test.TestService.KzAmlRs:output_type -> test.ResponseAml + 7, // [7:12] is the sub-list for method output_type + 2, // [2:7] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_test_proto_init() } +func file_test_proto_init() { + if File_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestAml); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KZAmlNewOnlineRs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseAml); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestImage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponseImage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_test_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Response); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_test_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_test_proto_goTypes, + DependencyIndexes: file_test_proto_depIdxs, + MessageInfos: file_test_proto_msgTypes, + }.Build() + File_test_proto = out.File + file_test_proto_rawDesc = nil + file_test_proto_goTypes = nil + file_test_proto_depIdxs = nil +} diff --git a/protoc-gen-micro/proto/test.proto b/protoc-gen-micro/proto/test.proto new file mode 100644 index 0000000..35e2e0d --- /dev/null +++ b/protoc-gen-micro/proto/test.proto @@ -0,0 +1,73 @@ +syntax="proto3"; + +package test; + +option go_package="/proto;pb"; + +import "api/annotations.proto"; +import "codec/frame.proto"; +import "tag/tag.proto"; + +service TestService { + rpc TestEndpoint(Request) returns (Response) { + option (micro.api.http) = { + get: "/users/test" + }; + } + rpc UserByID(Request) returns (Response) { + option (micro.api.http) = { + get: "/users/{id}" + }; + }; + rpc UserImageByID(Request) returns (micro.codec.Frame) { + option (micro.api.http) = { + get: "/users/{id}/image" + }; + }; + rpc UploadFile(RequestImage) returns (ResponseImage) { + option (micro.api.http) = { + post: "/users/image/upload" + }; + } + rpc KzAmlRs(RequestAml) returns (ResponseAml) { + option (micro.api.http) = { + post: "/aml" + }; + } +}; + +message RequestAml { + KZAmlNewOnlineRs kzAmlNewOnlineRs = 1 [(micro.tag.tags) = "xml:\"KZAmlNewOnlineRs\"" ]; +} + +message KZAmlNewOnlineRs { + string rquid = 1 [(micro.tag.tags) = "xml:\"RqUID\"" ]; + string rqtm = 2 [(micro.tag.tags) = "xml:\"RqTm\"" ]; + Status status = 3 [(micro.tag.tags) = "xml:\"Status\"" ]; + int64 terr_status = 4 [(micro.tag.tags) = "xml:\"TerrStatus\"" ]; + int64 aml_status = 5 [(micro.tag.tags) = "xml:\"AMLStatus\"" ]; +} + +message Status { + int64 status_code = 1 [(micro.tag.tags) = "xml:\"StatusCode\"" ]; +} + +message ResponseAml { + string resp = 1; +} + +message RequestImage { + bytes image = 1; + string file_name = 2; + string doc_type = 3; +} + +message ResponseImage {} + +message Request { + string id = 1; +} + +message Response { + string encoded_id = 1 [(micro.tag.tags) = "xml:\"encoded_id,attr\"" ]; +} \ No newline at end of file diff --git a/protoc-gen-micro/proto/test_micro.pb.go b/protoc-gen-micro/proto/test_micro.pb.go new file mode 100644 index 0000000..93bdf4b --- /dev/null +++ b/protoc-gen-micro/proto/test_micro.pb.go @@ -0,0 +1,61 @@ +// Code generated by protoc-gen-micro +// source: test.proto +package pb + +import ( + context "context" + api "github.com/unistack-org/micro/v3/api" + client "github.com/unistack-org/micro/v3/client" + codec "github.com/unistack-org/micro/v3/codec" +) + +func NewTestServiceEndpoints() []*api.Endpoint { + return []*api.Endpoint{ + &api.Endpoint{ + Name: "TestService.TestEndpoint", + Path: []string{"/users/test"}, + Method: []string{"GET"}, + Handler: "rpc", + }, + &api.Endpoint{ + Name: "TestService.UserByID", + Path: []string{"/users/{id}"}, + Method: []string{"GET"}, + Handler: "rpc", + }, + &api.Endpoint{ + Name: "TestService.UserImageByID", + Path: []string{"/users/{id}/image"}, + Method: []string{"GET"}, + Handler: "rpc", + }, + &api.Endpoint{ + Name: "TestService.UploadFile", + Path: []string{"/users/image/upload"}, + Method: []string{"POST"}, + Handler: "rpc", + }, + &api.Endpoint{ + Name: "TestService.KzAmlRs", + Path: []string{"/aml"}, + Method: []string{"POST"}, + Handler: "rpc", + }, + } +} + +type TestServiceClient interface { + TestEndpoint(ctx context.Context, req *Request, opts ...client.CallOption) (*Response, error) + UserByID(ctx context.Context, req *Request, opts ...client.CallOption) (*Response, error) + UserImageByID(ctx context.Context, req *Request, opts ...client.CallOption) (*codec.Frame, error) + UploadFile(ctx context.Context, req *RequestImage, opts ...client.CallOption) (*ResponseImage, error) + KzAmlRs(ctx context.Context, req *RequestAml, opts ...client.CallOption) (*ResponseAml, error) +} + +type TestServiceServer interface { + TestEndpoint(ctx context.Context, req *Request, rsp *Response) error + UserByID(ctx context.Context, req *Request, rsp *Response) error + UserImageByID(ctx context.Context, req *Request, rsp *codec.Frame) error + UploadFile(ctx context.Context, req *RequestImage, rsp *ResponseImage) error + KzAmlRs(ctx context.Context, req *RequestAml, rsp *ResponseAml) error +} diff --git a/protoc-gen-micro/proto/test_micro_http.pb.go b/protoc-gen-micro/proto/test_micro_http.pb.go new file mode 100644 index 0000000..0f5ce58 --- /dev/null +++ b/protoc-gen-micro/proto/test_micro_http.pb.go @@ -0,0 +1,130 @@ +// Code generated by protoc-gen-micro +// source: test.proto +package pb + +import ( + context "context" + v3 "github.com/unistack-org/micro-client-http/v3" + api "github.com/unistack-org/micro/v3/api" + client "github.com/unistack-org/micro/v3/client" + codec "github.com/unistack-org/micro/v3/codec" + server "github.com/unistack-org/micro/v3/server" + http "net/http" +) + +type testServiceClient struct { + c client.Client + name string +} + +func NewTestServiceClient(name string, c client.Client) TestServiceClient { + return &testServiceClient{c: c, name: name} +} + +func (c *testServiceClient) TestEndpoint(ctx context.Context, req *Request, opts ...client.CallOption) (*Response, error) { + opts = append(opts, + v3.Method(http.MethodGet), + v3.Path("/users/test"), + ) + rsp := &Response{} + err := c.c.Call(ctx, c.c.NewRequest(c.name, "TestService.TestEndpoint", req), rsp, opts...) + if err != nil { + return nil, err + } + return rsp, nil +} + +func (c *testServiceClient) UserByID(ctx context.Context, req *Request, opts ...client.CallOption) (*Response, error) { + opts = append(opts, + v3.Method(http.MethodGet), + v3.Path("/users/{id}"), + ) + rsp := &Response{} + err := c.c.Call(ctx, c.c.NewRequest(c.name, "TestService.UserByID", req), rsp, opts...) + if err != nil { + return nil, err + } + return rsp, nil +} + +func (c *testServiceClient) UserImageByID(ctx context.Context, req *Request, opts ...client.CallOption) (*codec.Frame, error) { + opts = append(opts, + v3.Method(http.MethodGet), + v3.Path("/users/{id}/image"), + ) + rsp := &codec.Frame{} + err := c.c.Call(ctx, c.c.NewRequest(c.name, "TestService.UserImageByID", req), rsp, opts...) + if err != nil { + return nil, err + } + return rsp, nil +} + +func (c *testServiceClient) UploadFile(ctx context.Context, req *RequestImage, opts ...client.CallOption) (*ResponseImage, error) { + opts = append(opts, + v3.Method(http.MethodPost), + v3.Path("/users/image/upload"), + ) + rsp := &ResponseImage{} + err := c.c.Call(ctx, c.c.NewRequest(c.name, "TestService.UploadFile", req), rsp, opts...) + if err != nil { + return nil, err + } + return rsp, nil +} + +func (c *testServiceClient) KzAmlRs(ctx context.Context, req *RequestAml, opts ...client.CallOption) (*ResponseAml, error) { + opts = append(opts, + v3.Method(http.MethodPost), + v3.Path("/aml"), + ) + rsp := &ResponseAml{} + err := c.c.Call(ctx, c.c.NewRequest(c.name, "TestService.KzAmlRs", req), rsp, opts...) + if err != nil { + return nil, err + } + return rsp, nil +} + +type testServiceServer struct { + TestServiceServer +} + +func (h *testServiceServer) TestEndpoint(ctx context.Context, req *Request, rsp *Response) error { + return h.TestServiceServer.TestEndpoint(ctx, req, rsp) +} + +func (h *testServiceServer) UserByID(ctx context.Context, req *Request, rsp *Response) error { + return h.TestServiceServer.UserByID(ctx, req, rsp) +} + +func (h *testServiceServer) UserImageByID(ctx context.Context, req *Request, rsp *codec.Frame) error { + return h.TestServiceServer.UserImageByID(ctx, req, rsp) +} + +func (h *testServiceServer) UploadFile(ctx context.Context, req *RequestImage, rsp *ResponseImage) error { + return h.TestServiceServer.UploadFile(ctx, req, rsp) +} + +func (h *testServiceServer) KzAmlRs(ctx context.Context, req *RequestAml, rsp *ResponseAml) error { + return h.TestServiceServer.KzAmlRs(ctx, req, rsp) +} + +func RegisterTestServiceServer(s server.Server, sh TestServiceServer, opts ...server.HandlerOption) error { + type testService interface { + TestEndpoint(ctx context.Context, req *Request, rsp *Response) error + UserByID(ctx context.Context, req *Request, rsp *Response) error + UserImageByID(ctx context.Context, req *Request, rsp *codec.Frame) error + UploadFile(ctx context.Context, req *RequestImage, rsp *ResponseImage) error + KzAmlRs(ctx context.Context, req *RequestAml, rsp *ResponseAml) error + } + type TestService struct { + testService + } + h := &testServiceServer{sh} + var nopts []server.HandlerOption + for _, endpoint := range NewTestServiceEndpoints() { + nopts = append(nopts, api.WithEndpoint(endpoint)) + } + return s.Handle(s.NewHandler(&TestService{h}, append(nopts, opts...)...)) +} diff --git a/server/grpc/generate.go b/server/grpc/generate.go index 709bde7..69a8775 100644 --- a/server/grpc/generate.go +++ b/server/grpc/generate.go @@ -1,3 +1,3 @@ package grpc -//go:generate protoc -I./proto -I$GOPATH/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.9.5/third_party/googleapis -I. --go-grpc_out=paths=source_relative:./proto --go_out=paths=source_relative:./proto --micro_out=components=micro|rpc,debug=true,standalone=true,paths=source_relative:./gproto proto/test.proto +//go:generate protoc -I./proto -I$GOPATH/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.9.5/third_party/googleapis -I. --go-grpc_out=paths=source_relative:./proto --go_out=paths=source_relative:./proto --go-micro_out=components=micro|rpc,debug=true,standalone=true,paths=source_relative:./gproto proto/test.proto diff --git a/server/grpc/gproto/test_micro.pb.go b/server/grpc/gproto/test_micro.pb.go index 9a20268..8596bc4 100644 --- a/server/grpc/gproto/test_micro.pb.go +++ b/server/grpc/gproto/test_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package helloworld import ( @@ -9,9 +11,9 @@ import ( client "github.com/unistack-org/micro/v3/client" ) -func NewTestEndpoints() []*api.Endpoint { - return []*api.Endpoint{ - &api.Endpoint{ +var ( + TestEndpoints = []api.Endpoint{ + api.Endpoint{ Name: "Test.Call", Path: []string{"/api/v0/test/call/TEST"}, Method: []string{"POST"}, @@ -19,6 +21,10 @@ func NewTestEndpoints() []*api.Endpoint { Handler: "rpc", }, } +) + +func NewTestEndpoints() []api.Endpoint { + return TestEndpoints } type TestClient interface { diff --git a/server/grpc/gproto/test_micro_rpc.pb.go b/server/grpc/gproto/test_micro_rpc.pb.go index f6f180d..2428437 100644 --- a/server/grpc/gproto/test_micro_rpc.pb.go +++ b/server/grpc/gproto/test_micro_rpc.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package helloworld import ( @@ -45,8 +47,8 @@ func RegisterTestServer(s server.Server, sh TestServer, opts ...server.HandlerOp } h := &testServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Test{h}, append(nopts, opts...)...)) } diff --git a/server/http/generate.go b/server/http/generate.go index d22d650..09272d8 100644 --- a/server/http/generate.go +++ b/server/http/generate.go @@ -2,4 +2,4 @@ package http //go:generate protoc -I./proto -I. -I/home/vtolstov/devel/projects/unistack/micro/micro-proto --go_out=paths=source_relative:./proto proto/test.proto -//go:generate protoc -I./proto -I. -I/home/vtolstov/devel/projects/unistack/micro/micro-proto --micro_out=components=micro|http,debug=true,tag_path=./proto,paths=source_relative:./proto proto/test.proto +//go:generate protoc -I./proto -I. -I/home/vtolstov/devel/projects/unistack/micro/micro-proto --go-micro_out=components=micro|http,debug=true,tag_path=./proto,paths=source_relative:./proto proto/test.proto diff --git a/server/http/http_test.go b/server/http/http_test.go index 3ef3ba8..97cafb9 100644 --- a/server/http/http_test.go +++ b/server/http/http_test.go @@ -16,6 +16,7 @@ import ( jsoncodec "github.com/unistack-org/micro-codec-json/v3" jsonpbcodec "github.com/unistack-org/micro-codec-jsonpb/v3" urlencodecodec "github.com/unistack-org/micro-codec-urlencode/v3" + xmlcodec "github.com/unistack-org/micro-codec-xml/v3" vmeter "github.com/unistack-org/micro-meter-victoriametrics/v3" httpsrv "github.com/unistack-org/micro-server-http/v3" pb "github.com/unistack-org/micro-tests/server/http/proto" @@ -143,10 +144,19 @@ func NewServerHandlerWrapper(t *testing.T) server.HandlerWrapper { } nmd := metadata.New(1) nmd.Set("my-key", "my-val") + nmd.Set("Content-Type", "text/xml") metadata.SetOutgoingContext(ctx, nmd) httpsrv.SetRspCode(ctx, http.StatusUnauthorized) return httpsrv.SetError(&pb.CallRsp{Rsp: "name_my_name"}) } + + if v, ok := md.Get("Test-Content-Type"); ok && v != "" { + nmd := metadata.New(1) + nmd.Set("my-key", "my-val") + nmd.Set("Content-Type", v) + metadata.SetOutgoingContext(ctx, nmd) + } + return fn(ctx, req, rsp) } } @@ -470,6 +480,7 @@ func TestNativeServer(t *testing.T) { srv := httpsrv.NewServer( server.Name("helloworld"), server.Register(reg), + server.Codec("text/xml", xmlcodec.NewCodec()), server.Codec("application/json", jsoncodec.NewCodec()), server.Codec("application/x-www-form-urlencoded", urlencodecodec.NewCodec()), server.WrapHandler(NewServerHandlerWrapper(t)), @@ -594,6 +605,8 @@ func TestNativeServer(t *testing.T) { t.Fatalf("invalid rsp received: %#+v\n", rsp) } + // Test-Content-Type + // stop server if err := srv.Stop(); err != nil { t.Fatal(err) diff --git a/server/http/proto/test_micro.pb.go b/server/http/proto/test_micro.pb.go index d6b9640..a569a21 100644 --- a/server/http/proto/test_micro.pb.go +++ b/server/http/proto/test_micro.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -8,9 +10,9 @@ import ( client "github.com/unistack-org/micro/v3/client" ) -func NewTestDoubleEndpoints() []*api.Endpoint { - return []*api.Endpoint{ - &api.Endpoint{ +var ( + TestDoubleEndpoints = []api.Endpoint{ + api.Endpoint{ Name: "TestDouble.CallDouble", Path: []string{"/v1/testdouble/call/{name}"}, Method: []string{"POST"}, @@ -18,6 +20,10 @@ func NewTestDoubleEndpoints() []*api.Endpoint { Handler: "rpc", }, } +) + +func NewTestDoubleEndpoints() []api.Endpoint { + return TestDoubleEndpoints } type TestDoubleClient interface { @@ -28,30 +34,30 @@ type TestDoubleServer interface { CallDouble(ctx context.Context, req *CallReq, rsp *CallRsp) error } -func NewTestEndpoints() []*api.Endpoint { - return []*api.Endpoint{ - &api.Endpoint{ +var ( + TestEndpoints = []api.Endpoint{ + api.Endpoint{ Name: "Test.CallRepeatedString", Path: []string{"/v1/test/call_repeated_string/{string_ids}"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, - &api.Endpoint{ + api.Endpoint{ Name: "Test.CallRepeatedInt64", Path: []string{"/v1/test/call_repeated_int64/{int64_ids}"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, - &api.Endpoint{ + api.Endpoint{ Name: "Test.Call", Path: []string{"/v1/test/call/{name}"}, Method: []string{"POST"}, Body: "*", Handler: "rpc", }, - &api.Endpoint{ + api.Endpoint{ Name: "Test.CallError", Path: []string{"/v1/test/callerror/{name}"}, Method: []string{"POST"}, @@ -59,6 +65,10 @@ func NewTestEndpoints() []*api.Endpoint { Handler: "rpc", }, } +) + +func NewTestEndpoints() []api.Endpoint { + return TestEndpoints } type TestClient interface { diff --git a/server/http/proto/test_micro_http.pb.go b/server/http/proto/test_micro_http.pb.go index 4610a5f..47f8515 100644 --- a/server/http/proto/test_micro_http.pb.go +++ b/server/http/proto/test_micro_http.pb.go @@ -1,5 +1,7 @@ -// Code generated by protoc-gen-micro +// Code generated by protoc-gen-go-micro. DO NOT EDIT. +// protoc-gen-go-micro version: v3.4.0 // source: test.proto + package pb import ( @@ -61,8 +63,8 @@ func RegisterTestDoubleServer(s server.Server, sh TestDoubleServer, opts ...serv } h := &testDoubleServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestDoubleEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestDoubleEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&TestDouble{h}, append(nopts, opts...)...)) } @@ -196,8 +198,8 @@ func RegisterTestServer(s server.Server, sh TestServer, opts ...server.HandlerOp } h := &testServer{sh} var nopts []server.HandlerOption - for _, endpoint := range NewTestEndpoints() { - nopts = append(nopts, api.WithEndpoint(endpoint)) + for _, endpoint := range TestEndpoints { + nopts = append(nopts, api.WithEndpoint(&endpoint)) } return s.Handle(s.NewHandler(&Test{h}, append(nopts, opts...)...)) }