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/hi/internal/config/config.go
Executable file
7
tools/goctl/example/rpc/hi/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 eventlogic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/pb/hi"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type AskQuestionLogic struct {
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
logx.Logger
|
||||
}
|
||||
|
||||
func NewAskQuestionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AskQuestionLogic {
|
||||
return &AskQuestionLogic{
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
Logger: logx.WithContext(ctx),
|
||||
}
|
||||
}
|
||||
|
||||
func (l *AskQuestionLogic) AskQuestion(in *hi.EventReq) (*hi.EventResp, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return &hi.EventResp{}, nil
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package greetlogic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/pb/hi"
|
||||
|
||||
"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 *hi.HelloReq) (*hi.HelloResp, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return &hi.HelloResp{}, nil
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package greetlogic
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/pb/hi"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
)
|
||||
|
||||
type SayHiLogic struct {
|
||||
ctx context.Context
|
||||
svcCtx *svc.ServiceContext
|
||||
logx.Logger
|
||||
}
|
||||
|
||||
func NewSayHiLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SayHiLogic {
|
||||
return &SayHiLogic{
|
||||
ctx: ctx,
|
||||
svcCtx: svcCtx,
|
||||
Logger: logx.WithContext(ctx),
|
||||
}
|
||||
}
|
||||
|
||||
func (l *SayHiLogic) SayHi(in *hi.HiReq) (*hi.HiResp, error) {
|
||||
// todo: add your logic here and delete this line
|
||||
|
||||
return &hi.HiResp{}, nil
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// Code generated by goctl. DO NOT EDIT!
|
||||
// Source: hi.proto
|
||||
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/logic/event"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/pb/hi"
|
||||
)
|
||||
|
||||
type EventServer struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
hi.UnimplementedEventServer
|
||||
}
|
||||
|
||||
func NewEventServer(svcCtx *svc.ServiceContext) *EventServer {
|
||||
return &EventServer{
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *EventServer) AskQuestion(ctx context.Context, in *hi.EventReq) (*hi.EventResp, error) {
|
||||
l := eventlogic.NewAskQuestionLogic(ctx, s.svcCtx)
|
||||
return l.AskQuestion(in)
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
// Code generated by goctl. DO NOT EDIT!
|
||||
// Source: hi.proto
|
||||
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/logic/greet"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/internal/svc"
|
||||
"github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/pb/hi"
|
||||
)
|
||||
|
||||
type GreetServer struct {
|
||||
svcCtx *svc.ServiceContext
|
||||
hi.UnimplementedGreetServer
|
||||
}
|
||||
|
||||
func NewGreetServer(svcCtx *svc.ServiceContext) *GreetServer {
|
||||
return &GreetServer{
|
||||
svcCtx: svcCtx,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *GreetServer) SayHi(ctx context.Context, in *hi.HiReq) (*hi.HiResp, error) {
|
||||
l := greetlogic.NewSayHiLogic(ctx, s.svcCtx)
|
||||
return l.SayHi(in)
|
||||
}
|
||||
|
||||
func (s *GreetServer) SayHello(ctx context.Context, in *hi.HelloReq) (*hi.HelloResp, error) {
|
||||
l := greetlogic.NewSayHelloLogic(ctx, s.svcCtx)
|
||||
return l.SayHello(in)
|
||||
}
|
||||
13
tools/goctl/example/rpc/hi/internal/svc/servicecontext.go
Normal file
13
tools/goctl/example/rpc/hi/internal/svc/servicecontext.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package svc
|
||||
|
||||
import "github.com/zeromicro/go-zero/tools/goctl/example/rpc/hi/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