beego api连接mysql_使用 Beego 搭建 Restful API 项目
发布日期:2022-02-03 13:17:03 浏览次数:8 分类:技术文章

本文共 2308 字,大约阅读时间需要 7 分钟。

1 环境准备

首先你需要在你的环境安装以下软件:

go:编程语言运行环境

git:版本控制工具

beego:go 语言流行的开发框架

bee:beego 配套的快速搭建工具

你喜欢的数据库:这里以 postgres 为例

1.1 go

注意:安装完 go 后,一定要手动配置好 $GOPATH。bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您还需要把 $GOPATH/bin 添加到您的环境变量中。

1.2 git

1.3 beego

使用如下命令安装:

go get github.com/astaxie/beego

更多详情可参考官方文档: beego 的安装

1.4 bee

使用如下命令安装:

go get github.com/beego/bee

更多详情可参考官方文档: Bee 工具的使用

1.5 数据库

2 使用bee工具

bee 是 beego 框架自带配套的高效工具。使用之后,相信你会惊叹他的产出!在此之前,你先确保 数据库 已经设计完毕,数据库设计不在本篇文章的范畴之内。

2.1 生成项目目录结构

如果你只是想搭建一个 api 服务,不带前端网页开发,可以使用如下命令:

bee api YOUR_PROJECT_NAME

就这样一个简单的命令,一个项目雏形就搭好了。

可以执行如下命令,跑起来看看。默认地址是: http://localhost:8080

bee run

如果你的8080端口被占用了,可以修改 conf/app.conf 文件调整端口号。如下所示,把端口调整到9000:

httpport = 9000

2.2 连接数据库生成代码

你是不是想过生成目录结构之后,需要自己手动编写 model 和 controller。这里可以负责任的告诉你:常规的 CRUD 完全不需要你手动编写一行代码。以 postgres 为例,只需运行如下命令即可:

bee generate appcode -driver=postgres -conn="postgres://YOUR_USERNAME:YOUR_PASSWORD@127.0.0.1:5432/YOUR_DBNAME?sslmode=disable"

运行命令之后你的目录,就会生成 Controller、Model 和 Router 文件。更多细致的调控可参考官方文档: Bee 工具的使用 - generate 命令 。

还没完,你还没告诉项目你的数据库连接字符串,不然它不会知道你的数据库在哪里,代码如下所示:

package main

import (

_ "kun/routers"

"github.com/astaxie/beego"

"github.com/astaxie/beego/orm" // 1.引入orm

_ "github.com/lib/pq" // 2.引入postgres数据库驱动器

)

func main() {

if beego.BConfig.RunMode == "dev" {

beego.BConfig.WebConfig.DirectoryIndex = true

beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"

}

// 3.注册默认数据库连接字符串

orm.RegisterDataBase("default", "postgres", "postgres://YOUR_USERNAME:YOUR_PASSWORD@127.0.0.1:5432/YOUR_DBNAME?sslmode=disable")

beego.Run()

}

数据库驱动器需要你事先手动获取,以postgres为例,命令如下:

go get github.com/lib/pq

2.3 生成Swagger文档

其实文档的大部分工作不论是在示例代码还是生成代码都已经给做了(留意控制器代码上的注释),你只需要修改下相应配置即可。在 beego 1.7+ 版本,只需要在 conf/app.conf 打开如下开关:

EnableDocs = true

做完之后,使用如下的命令跑你的项目:

bee run -gendoc=true -downdoc=true

-gendoc=true 表示每次自动化的 build 文档

-downdoc=true 就会自动的下载 swagger 文档查看器

9a5fb0b6ab73f98af40fc8595f51d239.png

swagger

关于如何在控制器中编写相应的 Swagger 文档注释,可参考 API自动化文档 。

有点美中不足的是,生成 api 地址都是单数形式,比如 /article,而 Restful API 最佳实践是复数形式。如果你介意的话,不妨手动修改下 /routers/router.go 文件,修改之后的文档图示如下:

22d5752efdb4794676fb88509aaf60dd.png

复数形式的API - swagger

这样就感觉就好多了。到此为止,一个完整的带有文档的 Restful API 项目就搭建好了,包含了基本的 CRUD 操作。顺道一提,还有分页和排序功能以及强大灵活的查询方式!

3 总结

本篇文章虽然比不上官方文档的详尽,但是重在于提供了一个清晰明了的简短流程,以及具有强烈的目标性:如何使用 beego 快速搭建带文档的 Restful API 项目。如果你存在困惑,不妨直接查看官方文档,官方文档写的非常简单友好,相信你定会有收获。顺道一提,go 语言的适用场景不仅仅是替代 c 语言所能做的事情,包括 API 服务和 web 服务等,它也是得心应手。

转载地址:https://blog.csdn.net/weixin_34759094/article/details/113891695 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:在下列集成电路说法中不正确_模拟集成电路复习题1
下一篇:python设计简单系统、不含数据库_python之数据库支持

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年03月14日 09时32分04秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

oracle dnfs 配置,Source of Oracle参数解析(dnfs_batch_size) - django-\/\/ i K | 2021-06-24
oracle所需的环境,转:面对一个全新的oracle环境,首先应该了解什么? 2021-06-24
linux 小数四则运行,shell四则运算(整数及浮点数)的方法介绍 2021-06-24
linux系统分区后进入紧急模式,Linux系统的救援模式应用详解 2021-06-24
linux配置匿名ftp服务器,在Linux环境中使用vsftpd搭建ftp实现匿名上传详细配置 2021-06-24
linux创建硬盘分区lvm,LVM创建及分区调整、更换LVM硬盘 2021-06-24
FreeBSD可以安装Linux软件吗,在Linux服务器上面通过网络安装FreeBSD 2021-06-24
.net core linux 桌面应用,C# dotnet core + AvaloniaUI 开发桌面软件,hello world 2021-06-24
linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法 2021-06-24
南昌工程学院c语言答案,南昌工程学院C语言程序设计基础课件第3讲运算符和表达式... 2021-06-24
python学画画_python学画画(下) 2021-06-24
云栖社区 mysql_【直播结束,已更新回放】PG、MySQL到底哪个好?云栖说这次请来五位专家撕了一下-阿里云开发者社区... 2021-06-24
老男孩mysql 百度云_英语语录:除了你,没人能掌控你的幸福 2021-06-24
mysql驱动多次执行问题_Laravel5.2队列驱动expire参数设置带来的重复执行问题 数据库驱动... 2021-06-24
mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql 2021-06-24
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表? 2021-06-24
python脚本怎么用来处理数据_长时间运行数据处理python脚本的程序结构 2021-06-24
python转成c 语言_将Python对象转换为C void类型 2021-06-24
resin mysql_Eclipse+resin+mysql 安装及环境配置 2021-06-24
redis的使用 Java_java中使用redis 2021-06-24