feat: Support for multiple rpc service generation and rpc grouping (#1972)
* Add group & compatible flag * Add group & compatible flag * Support for multiple rpc service generation and rpc grouping * Support for multiple rpc service generation and rpc grouping * Format code * Format code * Add comments * Fix unit test * Refactor function name * Add example & Update grpc readme * go mod tidy * update mod * update mod
This commit is contained in:
7
tools/goctl/example/rpc/hello/internal/config/config.go
Executable file
7
tools/goctl/example/rpc/hello/internal/config/config.go
Executable file
@@ -0,0 +1,7 @@
|
||||
package config
|
||||
|
||||
import "github.com/zeromicro/go-zero/zrpc"
|
||||
|
||||
type Config struct {
|
||||
zrpc.RpcServerConf
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package greetlogic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/pb/hello"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type SayHelloLogic struct {
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
logx.Logger
|
||||
}
|
||||
|
||||
func NewSayHelloLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SayHelloLogic {
|
||||
return &SayHelloLogic{
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
Logger: logx.WithContext(ctx),
|
||||
}
|
||||
}
|
||||
|
||||
func (l *SayHelloLogic) SayHello(in *hello.HelloReq) (*hello.HelloResp, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return &hello.HelloResp{}, nil
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by goctl. DO NOT EDIT!
|
||||
// Source: hello.proto
|
||||
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/internal/logic/greet"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/pb/hello"
|
||||
)
|
||||
|
||||
type GreetServer struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
hello.UnimplementedGreetServer
|
||||
}
|
||||
|
||||
func NewGreetServer(svcCtx *svc.ServiceContext) *GreetServer {
|
||||
return &GreetServer{
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *GreetServer) SayHello(ctx context.Context, in *hello.HelloReq) (*hello.HelloResp, error) {
|
||||
l := greetlogic.NewSayHelloLogic(ctx, s.svcCtx)
|
||||
return l.SayHello(in)
|
||||
}
|
||||
13
tools/goctl/example/rpc/hello/internal/svc/servicecontext.go
Normal file
13
tools/goctl/example/rpc/hello/internal/svc/servicecontext.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package svc
|
||||
|
||||
import "github.com/zeromicro/go-zero/tools/goctl/example/rpc/hello/internal/config"
|
||||
|
||||
type ServiceContext struct {
|
||||
Config config.Config
|
||||
}
|
||||
|
||||
func NewServiceContext(c config.Config) *ServiceContext {
|
||||
return &ServiceContext{
|
||||
Config: c,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user