使用Beego创建API项目并自动化文档

最近需要使用Go写一个Web API项目,可以使用Beego与Gin来写此类项目,还是非常方便的,这里就介绍一下使用Beego来创建的Web API项目并自动化文档的方法。

使用Gin创建API项目并自动化文档参见:使用Gin编写Web API项目并自动化文档

一、准备环境

bash 复制代码
go install github.com/beego/bee/v2@latest

二、创建API项目

bash 复制代码
bee api api

1. 下载项目依赖

bash 复制代码
$ cd api
$ go mod tidy

此时项目目录结构如下:

bash 复制代码
$ tree
.
├── conf
│   └── app.conf
├── controllers
│   ├── object.go
│   └── user.go
├── go.mod
├── go.sum
├── main.go
├── models
│   ├── object.go
│   └── user.go
├── routers
│   └── router.go
└── tests
    └── default_test.go

6 directories, 10 files

2. 生成路由

bash 复制代码
bee generate routers

该命令会生成routers/commentsRouter.go文件。

bash 复制代码
$ tree
.
├── conf
│   └── app.conf
├── controllers
│   ├── object.go
│   └── user.go
├── go.mod
├── go.sum
├── main.go
├── models
│   ├── object.go
│   └── user.go
├── routers
│   ├── commentsRouter.go
│   └── router.go
└── tests
    └── default_test.go

6 directories, 11 files

此时可以在浏览器中浏览:http://127.0.0.1:8080/v1/user/

注意,这里不能使用https

三、自动化文档与测试

每次手动测试API还是比较繁琐的,为了方便测试,可以使用swagger来进行API辅助测试。

bash 复制代码
bee run -gendoc=true -downdoc=true

此时默认使用的是https://petstore.swagger.io/v2/swagger.json配置文件

可以手动将前面的路径去掉,只保留swagger.json,然后测试,会发现有问题:

bash 复制代码
	
Failed to fetch.
Possible Reasons:

CORS
Network Failure
URL scheme must be "http" or "https" for CORS request.

需要修改swagger/index.html:

将url: "https://petstore.swagger.io/v2/swagger.json"替换成url: "/swagger/swagger.json"。再测试就正常了:

如何写注释,让swagger自动生成接口文档,可以参考:https://beego.wiki/zh-cn/docs/advantage/docs/

相关推荐
海姐软件测试14 小时前
Python 自动化与 AI 结合:基于 Jenkins 的回归验证实践
人工智能·python·自动化
余槐i15 小时前
yt-dlp 线程开到 16 反而更慢:1000 个视频的实测与限速原因
性能优化·ffmpeg·自动化·开发工具·yt-dlp
奈落2415 小时前
Anthropic 收购 Vercept:Claude 的“计算机使用”要补感知与交互这一课,团队该盯什么
microsoft·api·agent·ai 编程
志栋智能15 小时前
降本增效双赢:超自动化IT运维落地方法论
运维·自动化
ii_best16 小时前
安卓手机开发、iOS 手机开发都能用:按键精灵远程调试,设备在千里外也能改脚本
android·ios·智能手机·自动化·按键精灵
科技小E16 小时前
模型训完≠能用:深度学习推理工作站DLTM推理验证如何把住“最后一公里”质量关
服务器·深度学习·自动化
高频因子挖掘机17 小时前
别再手动维护股票名称映射表:用 Python 查询交易所元数据
后端·github·api
高频因子挖掘机18 小时前
QuantDash 明明安装成功,为什么 Python 还是无法 import?
后端·github·api
FII工业富联科技服务1 天前
Omniverse 数字孪生与柔性自动化,如何破解产能与交付、设备与空间的双重困境?
运维·自动化·devops
Rock Chin6971 天前
把 n8n 接进 Slack:在对话里 @机器人 触发自动化工作流
运维·机器人·自动化