学习笔记:带你十天轻松搞定 Go 微服务系列(四)产品服务

学习课程 博客:带你十天轻松搞定 Go 微服务系列(四) 官方文档 go-zero.dev/cn/

一、主要流程:

进入工作区 cd mall/service/product

生成代码

  1. 根据msyql ddl 生成 product model 模型
    goctl api go -api ./api/product.api -dir ./api
  2. 根据.api 文件 生成 product api 服务
    goctl api go -api ./api/product.api -dir ./api
  3. 根据proto 文件 生成 product rpc 服务
    goctl rpc proto -src ./rpc/product.proto -dir ./rpc

编写 product rpc 服务

  • 修改 product.yaml 配置文件
  • 添加 product model 依赖
  • API-CURD 添加产品创建逻辑 Create、详情逻辑 Detai、更新逻辑 Update、删除逻辑 Remove

编写 product api 服务

  • 修改 product.yaml 配置文件
  • 添加 product rpc 依赖
  • RPC-CURD 添加产品创建逻辑 Create、详情逻辑 Detai、更新逻辑 Update、删除逻辑 Remove

启动服务 GO run

二、遇到的问题

bug1 (在宿主机执行造成的)

deprecated: use “goctl rpc protoc” instead, for the details see “goctl rpc protoc –help”
goctl: generation error: exec: “protoc”: executable file not found in $PATH
goctl version: 1.3.2 linux/amd64

解决方法 一宿主机

执行 goctl rpc protoc –help 可以产看命令帮助
需要安装protoc & protoc-gen-go go-zero.dev/protoc-install.html
手动安装 蛮麻烦的 (版本、依赖、墙、环境变量)折腾了好几个钟,建议 暂时放弃!

解决方法 二容器

建议还是直接进 golang 容器执行命令 毕竟项目是运行在容器的,如果你宿主机安装的版本不一致 可能会造成问题

docker ps | grep golang                   #查找golang 容器信息
docker exec -it container-id  /bin/bash   #进入容器 默认进入到/usr/src/code   可用dir查看目录
cd mall/service/procduct
goctl rpc proto -src ./rpc/product.proto -dir ./rpc   #done

bug 2 启动 product api 服务时

product.go: found packages logic (createhandler.go) and handler (routes.go) in /usr/src/code/mall/service/product/api/internal/handler
包名定义错了 import 为 handler 包下 却定义了 pakage logic

本作品采用《CC 协议》,转载必须注明作者和本文链接
滴水穿石,石破天惊----晓疯子
zhaocrazy
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!