当前位置: 首页 > news >正文

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

proto 声明SayHi 

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

go mod init xgs_kratosgo 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层

package serviceimport ("context"v1 "xgs_kratos/api/helloworld/v1""xgs_kratos/internal/biz"
)// GreeterService is a greeter service.
type GreeterService struct {v1.UnimplementedGreeterServeruc *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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JS递归遍历路由文件,修改hidden属性
  • 三、【Python】入门 - 第一个python程序
  • 微信小程序开发:项目程序代码构成
  • 【机器学习】FlyFlowerSong【人工智能】资源指南
  • 服务攻防-框架安全(漏洞复现)
  • 2024年7月23日(samba DNS)
  • MySQL8的备份方案——全量(完全)备份(CentOS)
  • 操作系统——笔记(1)
  • 驱动框架——CMSIS第一部分 RTE驱动框架介绍
  • 类和对象(四)
  • AV1技术学习:Quantization
  • centos系统mysql主从复制(一主一从)
  • 全国区块链职业技能大赛第九套区块链产品需求分析与方案设计
  • 腾讯云开发者《中国数据库前世今生》有奖创作季
  • Linux grep技巧 提取log中的json数据
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • C学习-枚举(九)
  • Docker: 容器互访的三种方式
  • javascript面向对象之创建对象
  • java小心机(3)| 浅析finalize()
  • leetcode386. Lexicographical Numbers
  • PHP的Ev教程三(Periodic watcher)
  • vue-loader 源码解析系列之 selector
  • 从零开始学习部署
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何选择开源的机器学习框架?
  • 在weex里面使用chart图表
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • # Apache SeaTunnel 究竟是什么?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #进阶:轻量级ORM框架Dapper的使用教程与原理详解
  • (13)DroneCAN 适配器节点(一)
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java入门)学生管理系统
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (二)Linux——Linux常用指令
  • (二)WCF的Binding模型
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (南京观海微电子)——示波器使用介绍
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.01.09
  • (一)Neo4j下载安装以及初次使用
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET 命令行参数包含应用程序路径吗?
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .考试倒计时43天!来提分啦!
  • @RunWith注解作用
  • [《百万宝贝》观后]To be or not to be?