Slide 11
Slide 11 text
© Know ledge Work Inc.
基本的なコード群はprotocで生成
ServiceのImplementsを自作pluginで生成
Service共通の処理
認証処理(詳細後述)
11
protobuf駆動の開発 Backend
type UserServiceServer interface {
GetUser(context.Context, *GetUserRequest)
(*GetUserResponse, error)
}
func (s *userServiceServer) GetUser(
ctx context.Context, req *appservice.GetUserRequest,
) (*appservice.GetUserResponse, error) {
userID, err := idtype.UserIDFromString(req.Id)
if err != nil {
return nil, status.Errorf(codes.InvalidArgument, "invalid user id (%s)", req.Id)
}
a, err := s.authorizer.Authorize(
ctx, userID, roleactionmodel.UsersGet.ID,
)
if err != nil {
return nil, err
}
return s.getUser(ctx, a, req)
}
Serverの共通処理を自動生成