api: add static router and improve path parser in rpc handler (#1437)
* api: add static router and improve path parser in rpc handler Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * expose metadata context key to be able to get unmodified map keys Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * server/grpc: fix jsonpb codec for protobuf msg Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * api/handler/rpc: write 204 status code when rsp is nil Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * api/handler/rpc: add check for nil response for non javascript Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		
							
								
								
									
										102
									
								
								api/service/proto/api.pb.micro.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								api/service/proto/api.pb.micro.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | ||||
| // Code generated by protoc-gen-micro. DO NOT EDIT. | ||||
| // source: api.proto | ||||
|  | ||||
| package go_micro_api | ||||
|  | ||||
| import ( | ||||
| 	fmt "fmt" | ||||
| 	proto "github.com/golang/protobuf/proto" | ||||
| 	math "math" | ||||
| ) | ||||
|  | ||||
| import ( | ||||
| 	context "context" | ||||
| 	client "github.com/micro/go-micro/v2/client" | ||||
| 	server "github.com/micro/go-micro/v2/server" | ||||
| ) | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
|  | ||||
| // This is a compile-time assertion to ensure that this generated file | ||||
| // is compatible with the proto package it is being compiled against. | ||||
| // A compilation error at this line likely means your copy of the | ||||
| // proto package needs to be updated. | ||||
| const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package | ||||
|  | ||||
| // Reference imports to suppress errors if they are not otherwise used. | ||||
| var _ context.Context | ||||
| var _ client.Option | ||||
| var _ server.Option | ||||
|  | ||||
| // Client API for Api service | ||||
|  | ||||
| type ApiService interface { | ||||
| 	Register(ctx context.Context, in *Endpoint, opts ...client.CallOption) (*EmptyResponse, error) | ||||
| 	Deregister(ctx context.Context, in *Endpoint, opts ...client.CallOption) (*EmptyResponse, error) | ||||
| } | ||||
|  | ||||
| type apiService struct { | ||||
| 	c    client.Client | ||||
| 	name string | ||||
| } | ||||
|  | ||||
| func NewApiService(name string, c client.Client) ApiService { | ||||
| 	return &apiService{ | ||||
| 		c:    c, | ||||
| 		name: name, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (c *apiService) Register(ctx context.Context, in *Endpoint, opts ...client.CallOption) (*EmptyResponse, error) { | ||||
| 	req := c.c.NewRequest(c.name, "Api.Register", in) | ||||
| 	out := new(EmptyResponse) | ||||
| 	err := c.c.Call(ctx, req, out, opts...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return out, nil | ||||
| } | ||||
|  | ||||
| func (c *apiService) Deregister(ctx context.Context, in *Endpoint, opts ...client.CallOption) (*EmptyResponse, error) { | ||||
| 	req := c.c.NewRequest(c.name, "Api.Deregister", in) | ||||
| 	out := new(EmptyResponse) | ||||
| 	err := c.c.Call(ctx, req, out, opts...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return out, nil | ||||
| } | ||||
|  | ||||
| // Server API for Api service | ||||
|  | ||||
| type ApiHandler interface { | ||||
| 	Register(context.Context, *Endpoint, *EmptyResponse) error | ||||
| 	Deregister(context.Context, *Endpoint, *EmptyResponse) error | ||||
| } | ||||
|  | ||||
| func RegisterApiHandler(s server.Server, hdlr ApiHandler, opts ...server.HandlerOption) error { | ||||
| 	type api interface { | ||||
| 		Register(ctx context.Context, in *Endpoint, out *EmptyResponse) error | ||||
| 		Deregister(ctx context.Context, in *Endpoint, out *EmptyResponse) error | ||||
| 	} | ||||
| 	type Api struct { | ||||
| 		api | ||||
| 	} | ||||
| 	h := &apiHandler{hdlr} | ||||
| 	return s.Handle(s.NewHandler(&Api{h}, opts...)) | ||||
| } | ||||
|  | ||||
| type apiHandler struct { | ||||
| 	ApiHandler | ||||
| } | ||||
|  | ||||
| func (h *apiHandler) Register(ctx context.Context, in *Endpoint, out *EmptyResponse) error { | ||||
| 	return h.ApiHandler.Register(ctx, in, out) | ||||
| } | ||||
|  | ||||
| func (h *apiHandler) Deregister(ctx context.Context, in *Endpoint, out *EmptyResponse) error { | ||||
| 	return h.ApiHandler.Deregister(ctx, in, out) | ||||
| } | ||||
		Reference in New Issue
	
	Block a user