userName := req.GetUserName() if userName == "" { return nil, fmt.Errorf("user name is empty") } password := req.GetPassword() if password == "" { return nil, fmt.Errorf("password is empty") } role, err := auth.CheckPassword(userName, password) if err != nil { return nil, err } token, err := auth.GenerateToken(userName, role) if err != nil { return nil, err } return &proto.LoginResponse{ Token: token, }, nil } 2. Protocol Bufferを使う ・自動生成されたコードの利用(Go)