go学习笔记——Kratos框架

news/2024/10/1 19:30:54

官方文档

https://go-kratos.dev/en/docs/getting-started/start/

1.安装Go

参考:mac安装go1.20

2.安装Kratos框架

kratos依赖protobuf grpc等框架,需要先进行安装

brew install grpc
brew install protobuf
brew install protoc-gen-go
brew install protoc-gen-go-grpc

验证

protoc --version
protoc-gen-go --version
protoc-gen-go-grpc --version

安装kratos框架

go install github.com/go-kratos/kratos/cmd/kratos/v2@latest

3.创建项目

# 创建项目
kratos new helloworld
# 也可以指定仓库
kratos new helloworld -r https://gitee.com/go-kratos/kratos-layout.git

编译项目

cd helloworld# 安装依赖
make init# 生成wire依赖注入
go generate ./...
# 或者使用make
make generate# 生成bin执行文件
go build -o ./bin/ ./...
# 或者使用make
make build# 运行
./bin/helloworld -conf ./configs
或者
kratos run# 测试
curl 'http://127.0.0.1:8000/helloworld/kratos'
{"message":"Hello kratos"}%

项目结构

Kratos项目如果想要使用debug模式来运行

需要将run kind从File修改成Directory,并指定Directory为main.go和wire_gen.go所在的目录,否则会报

# command-line-arguments
./main.go:77:23: undefined: wireApp

同时还需要额外指定conf文件的路径,否则会报

panic: stat ../../configs: no such file or directory

配置如下

或者修改成package,指定成package path

debug成功

如果想要添加额外的API,需要先添加proto文件

kratos proto add api/helloworld/demo.proto

编译proto文件生成model和grpc代码

kratos proto client api/helloworld/demo/demo.proto

或者使用make命令

make api

注意make api命令无法生成validate验证代码,需要额外使用make validate命令,但是kratos proto client命令是可以的

参考:https://go-kratos.dev/docs/component/middleware/validate/

生成service模板代码

kratos proto server api/helloworld/demo/demo.proto -t internal/service

参考文档:从0到1安装启动Kratos框架 和 https://go-kratos.dev/en/docs/getting-started/usage

4.Example项目

https://github.com/go-kratos/examples

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/29540.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下:遗传优化迭代过程:误码率对比:2.算法涉及理论知识概要低密度奇偶校验码(Low-Density Parity-Check Code, LDPC码)因其优越的纠错性能和近似香农极限的潜力,在现代通信系统中扮演着重要角色。归一化最小和(Normalized Min-Sum, NMS)…

交流接触器

一般按负载电流的1.5倍选择;

stm32 出现 hard fault 的排查记录

参考链接:https://blog.csdn.net/qq_43118572/article/details/1327596261、先验知识先验知识1: cortex m3 在中断/异常时,会把 8 个寄存器(xPSR、PC、LR、R12 以及R3-R0)的值压入栈。入栈顺序以及入栈后堆栈中的内容如下(CM4 是从低地址到搞地质):地址 寄存器 被保存的…

stm32 将外部 Flash挂载在 SPI 出现数据传输时好时不好的排查过程

现象: 将外部 Flash 挂载在 SPI,在 hardware_init() -> read_jedec_id() 里的 result = spi->wr(spi, cmd_data, sizeof(cmd_data), recv_data, sizeof(recv_data)) 中, recv_data 的值经常不一致,result 的值偶尔为 SFUD_SUCCESS, 大部分会 Error。备注: 正常情况…

(8)ILA介绍

一、ILA简介二、ILA使用 在IP Catalog中选择搜索ila,选择第一个:接下来进行一些参数的配置: 配置好后生成即可: 一般情况下选择额ooc模式,可以节省资源。 在IP Sources中可以看到生成的ila ip核,比较重要的是这个.veo文件,这个相当于是ila的一个例化的模板,将该模板直接…

文件IO笔试题

文件IO 笔试题 作业:设计程序,获取当前系统时间,把时间转换为特定格式”yy年mm月dd日 星期x tt:mm:ss”,并每隔1s写入到本地磁盘中一个叫做log.txt的文本中,如果文本不存在则创建。 代码: /***************************************************************************…