go-kratos 学习笔记(2) 创建api

proto 声明SayHi

先删除go.mod 从新初始化一下

复制代码
go mod init xgs_kratos

go mod tidy

编辑 api/helloword/v1/greeter.proto 新声明一个方法

复制代码
rpc SayHi (HelloHiRequest) returns (HelloHiReply) {
    option (google.api.http) = {
      post: "/hi"
      body: "*"
    };
  }

post请求的话 body必须写,定义好之后

复制代码
#执行
make api

#在执行
make generate

编辑service层

Go 复制代码
package service

import (
	"context"

	v1 "xgs_kratos/api/helloworld/v1"
	"xgs_kratos/internal/biz"
)

// GreeterService is a greeter service.
type GreeterService struct {
	v1.UnimplementedGreeterServer

	uc *biz.GreeterUsecase
}

// NewGreeterService new a greeter service.
func NewGreeterService(uc *biz.GreeterUsecase) *GreeterService {
	return &GreeterService{uc: uc}
}

// SayHello implements helloworld.GreeterServer.
func (s *GreeterService) SayHello(ctx context.Context, in *v1.HelloRequest) (*v1.HelloReply, error) {
	g, err := s.uc.CreateGreeter(ctx, &biz.Greeter{Hello: in.Name})
	if err != nil {
		return nil, err
	}
	return &v1.HelloReply{Message: "Hello " + g.Hello}, nil
}

// SayHi implements helloworld.GreeterServer.
func (s *GreeterService) SayHi(ctx context.Context, in *v1.HelloHiRequest) (*v1.HelloHiReply, error) {
	g, err := s.uc.CreateGreeter(ctx, &biz.Greeter{Hello: in.Name})
	if err != nil {
		return nil, err
	}
	return &v1.HelloHiReply{Message: "Hello " + g.Hello}, nil
}

运行 kratos run

postman请求的结果如下

项目的代码 码云 https://gitee.com/gebilaoxie/xgs_kratos.git

相关推荐
二闹25 分钟前
第十六章:监理基础知识(16.1监理的意义和作用--16.5监理要素)
笔记·产品经理
Chef_Chen28 分钟前
从0开始学习R语言--Day37--CMH检验
学习
致***锌1 小时前
etf期权和个股期权哪个期权费更贵?
笔记
hjs_deeplearning2 小时前
认知篇#10:何为分布式与多智能体?二者联系?
人工智能·分布式·深度学习·学习·agent·智能体
静心问道9 小时前
XLSR-Wav2Vec2:用于语音识别的无监督跨语言表示学习
人工智能·学习·语音识别
懒惰的bit10 天前
STM32F103C8T6 学习笔记摘要(四)
笔记·stm32·学习
zkyqss10 天前
OVS Faucet练习(下)
linux·笔记·openstack
Jay_51510 天前
C++ STL 模板详解:由浅入深掌握标准模板库
c++·学习·stl
冰茶_10 天前
ASP.NET Core API文档与测试实战指南
后端·学习·http·ui·c#·asp.net
丶Darling.10 天前
深度学习与神经网络 | 邱锡鹏 | 第五章学习笔记 卷积神经网络
深度学习·神经网络·学习