《go-zero云笺密钥录》

目录
3.1 base64Captcha.NewDriverDigit()
3.2 base64Captcha.NewCaptcha ()
一、前言
本文将为大家带来go-zero框架下如何实现一个能够随机生成随机数字验证码的api接口。
二、正文
1.编写api接口
在go-zero框架下要实现一个接口,我们需要先定义一个api文件,在这个文件中声明我们要实现接口的函数名,参数和返回值,如果参数和返回值是自定义类型的的话,我们还需要将具体的类型定义写在api文件中。笔者将生成随机图形验证码的函数,参数和返回值声明在fac-contact.api中,所有的接口api都聚合在一个总的api文件,即fca.api,后续的话就只需要根据这一个fca.api就可以自主生成所有接口后续的handle和logic文件
1.1 fac-contact.api
@server ( prefix: /api/v1 timeout: 15s group: contact ) service fca-api { @doc( summary: "获取图形验证码" description: "生成并返回图形验证码" ) @handler WebsiteCaptchaHandler // TODO: set handler name and delete this comment get /contact/captcha returns(ContactCaptchaResp) } 1.2 fca.api
import "fca-contact.api" type ContactCaptchaResp { Data ContactCaptchaRespData `json:"data,omitempty"` } type ContactCaptchaRespData { CaptchaId string `json:"captchaId"` //与验证码对应的ID ImageBase64 string `json:"imageBase64"` //生成的图形验证码 } 这里的CaptchaId是为了后续将用户输入的图形验证码与ID对应的图形验证码进行比对,如果相等即说明用户输入正确,相反则说明错误
在写完api文件后,我们执行下述代码,go-zero框架就可以自主帮我们生成后面的Handle函数和Logic函
goctl api go -api ./fca.api -dir .注: goctl(Go Control Tool)是 go-zero 框架的代码生成工具,用于自动化生成项目代码、配置文件及部署脚本,主要功能包括:
● 项目脚手架生成:快速创建 API 服务、RPC 服务等基础代码结构。
● 代码生成:根据定义文件(如 .api、.proto)生成模型层、逻辑层、路由层代码3。
● 配置管理:生成与框架兼容的配置文件(如 yaml 格式)。
● 部署支持:生成 Dockerfile 或 Kubernetes 部署模板。
生成API服务
goctl api go -api user.api -dir .● user.api 文件定义了接口路径、请求/响应结构等。
● 生成代码包含路由、处理函数及中间件框架