Skip to main content

api demo 代码生成

概述

在完成了 goctl 安装 后,我们可以通过 goctl 创建一个最小化的 HTTP 服务来了解 goctl 的 go-zero api 服务的概况。

任务目标

  1. 学会如何使用 goctl 创建一个最小化的 HTTP 服务
  2. 初步了解 go-zero 的项目结构

准备条件

  1. 完成 golang 安装
  2. 完成 goctl 安装

代码生成

# 创建工作空间并进入该目录
$ mkdir -p ~/workspace/api && cd ~/workspace/api
# 执行指令生成 demo 服务
$ goctl api new demo
Done.

执行完指令后,会在当前目录下生成一个 demo 目录,该目录下包含了一个最小化的 HTTP 服务,我们来查看一下该服务的目录结构。

# 进入 demo 服务目录
$ cd ~/workspace/api/demo
# 查看文件列表
$ ls
demo.api demo.go etc go.mod internal
# 查看目录接口
$ tree
.
├── demo.api
├── demo.go
├── etc
│   └── demo-api.yaml
├── go.mod
└── internal
├── config
│   └── config.go
├── handler
│   ├── demohandler.go
│   └── routes.go
├── logic
│   └── demologic.go
├── svc
│   └── servicecontext.go
└── types
└── types.go
注意

API、RPC、Job 服务目录结构大同小异,go-zero 项目结构详情可参阅 《项目结构》

编写简单的逻辑代码

在完成上述代码生成后,我们可以找到 ~/workspace/api/demo/internal/logic/demologic.go 文件,编辑该文件,在 2728 行添加如下代码:

resp = new(types.Response)
resp.Message = req.Name

启动服务

在完成上述代码编写后,我们可以通过如下指令启动服务:

# 进入服务目录
$ cd ~/workspace/api/demo
# 整理依赖文件
$ go mod tidy
# 启动 go 程序
$ go run demo.go

当你看到有如下输出 Starting server at 0.0.0.0:8888...,说明服务已经启动成功,接着我们来访问一下该 HTTP 服务。

$ curl --request GET 'http://127.0.0.1:8888/from/me'

当你在终端看到输出内容 {"message":"me"} 时代表你的服务已经成功启动。

当你按照文档步骤走到这里,恭喜你 🎉 🎉 🎉 ,你已经完成了最简单的 go-zero api 服务的创建和启动了,如需了解 goctl 工具的使用说明请参阅 《CLI 工具》,如需了解完整 go-zero api 服务的使用说明请参阅 《HTTP Server》