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

相关推荐
xiaoyalian38 分钟前
R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法
笔记·r语言·数据可视化
Red Red2 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
贰十六3 小时前
笔记:Centos Nginx Jdk Mysql OpenOffce KkFile Minio安装部署
笔记·nginx·centos
知兀3 小时前
Java的方法、基本和引用数据类型
java·笔记·黑马程序员
Natural_yz4 小时前
大数据学习17之Spark-Core
大数据·学习·spark
qq_172805594 小时前
RUST学习教程-安装教程
开发语言·学习·rust·安装
一只小小汤圆4 小时前
opencascade源码学习之BRepOffsetAPI包 -BRepOffsetAPI_DraftAngle
c++·学习·opencascade
醉陌离4 小时前
渗透测试笔记——shodan(4)
笔记
虾球xz4 小时前
游戏引擎学习第20天
前端·学习·游戏引擎
LateBloomer7774 小时前
FreeRTOS——信号量
笔记·stm32·学习·freertos