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

相关推荐
水木流年追梦14 小时前
大模型入门-大模型优化方法1
人工智能·学习·算法·机器学习·正则表达式
摇滚侠14 小时前
IDEA 新建 Java 项目 学习 Java SE
java·学习·intellij-idea
kinl201814 小时前
Softmax Linear Units (SoLU)
笔记
叶~小兮14 小时前
K8s常用组件学习笔记
笔记·学习·kubernetes
星恒随风14 小时前
从零开始理解 ResNet(上):为什么 CNN 需要“残差连接”?
人工智能·笔记·神经网络·学习·cnn
z小猫不吃鱼14 小时前
08 BERT 论文精读:双向 Transformer 如何学习语言表示?
学习·bert·transformer
shuaiqinke14 小时前
【分享】医维度解剖 3D人体模型 解剖学习超直观
学习·3d
星秀日14 小时前
rust学习入门
开发语言·学习·rust
Wils0nEdwards15 小时前
claude.md 使用方法
笔记
库奇噜啦呼15 小时前
【iOS】源码学习-类的加载
学习·ios·cocoa