使用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/

相关推荐
molly cheung1 小时前
FetchAPI 请求流式数据 基本用法
javascript·fetch·请求取消·流式·流式数据·流式请求取消
星尘库4 小时前
抖音自动化-实现给特定用户发私信
前端·javascript·自动化
Mr_Xuhhh4 小时前
GUI自动化测试--自动化简单示例
运维·服务器·自动化
研究司马懿16 小时前
【ETCD】ETCD——confd配置管理
数据库·golang·自动化·运维开发·etcd·argocd·gitops
2501_9159214317 小时前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
RPA机器人就用八爪鱼1 天前
RPA自动化程序:企业数字化转型的智能引擎
运维·自动化·rpa
IT小哥哥呀1 天前
Jenkins + Docker 打造自动化持续部署流水线
docker·微服务·自动化·jenkins·springboot·高并发·限流
2501_915918411 天前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone
007tg1 天前
Telegram SCRM 系统构建指南:自动化营销与客户管理实战
大数据·运维·自动化
King's King1 天前
自动化化WMS和WCS投标模板
运维·自动化