开发步骤一
定义服务对外提供接口 app/serviceInterface/interface.go
package serviceInterface
import (
"context"
"odin/proto"
)
type Service interface {
//HelloService
SayHello(ctx context.Context, req *proto.SayHelloRequest, resp *proto.SayHelloResponse) error
//UserService
UserInfo(ctx context.Context, req *proto.UserInfoRequest, resp *proto.UserInfoResponse) error
AddUser(ctx context.Context, req *proto.AddUserRequest, resp *proto.AddUserResponse) error
UpdateUser(ctx context.Context, req *proto.UpdateUserRequest, resp *proto.UpdateUserResponse) error
}
说明
- 接口定义需满足rpcx注册方法参数规定,即参数数量固定为3个,第一个为context.Context,第二个为请求结构体,第三个为返回数据结构体,且参数必须为指针类型。请求返回参数必须预先定义为一个结构体,不可为slice、map类型。返回值为error类型
- 方法名为大写
- interface名Service、package名serviceInterface、文件位置均不可改变
- 服务科拆分为多个子服务分别实现,一个子服务可实现多个接口方法,同一个子服务方法位置连续,方便管理。
- 注释为接口方法与实现子服务绑定关系 1、注释内容为实现子服务的结构体。 2、对应子服务位置关系。 如UserService->app/serviceImpl/UserService,record.UserOperateService->app/serviceImpl/record/UserOperateService