bee工具的使用及创建第一个项目

前提文章:beego的安装及配置参数说明-CSDN博客

提示:beego框架下项目需要再GOPATH/src下进行开发,我的GOPATH是C:\Users\leell\go

web项目创建

通过 bee new 创建web项目

C:\Users\leell\go\src>bee new beego-web
2024/01/15 21:40:04.553 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
2024/01/15 21:40:04 INFO     ▶ 0001 Generate new project support go modules.
2024/01/15 21:40:04 INFO     ▶ 0002 Creating application...create   C:\Users\leell\go\src\beego-web\go.modcreate   C:\Users\leell\go\src\beego-web\create   C:\Users\leell\go\src\beego-web\conf\create   C:\Users\leell\go\src\beego-web\controllers\create   C:\Users\leell\go\src\beego-web\models\create   C:\Users\leell\go\src\beego-web\routers\create   C:\Users\leell\go\src\beego-web\tests\create   C:\Users\leell\go\src\beego-web\static\create   C:\Users\leell\go\src\beego-web\static\js\create   C:\Users\leell\go\src\beego-web\static\css\create   C:\Users\leell\go\src\beego-web\static\img\create   C:\Users\leell\go\src\beego-web\views\create   C:\Users\leell\go\src\beego-web\conf\app.confcreate   C:\Users\leell\go\src\beego-web\controllers\default.gocreate   C:\Users\leell\go\src\beego-web\views\index.tplcreate   C:\Users\leell\go\src\beego-web\routers\router.gocreate   C:\Users\leell\go\src\beego-web\tests\default_test.gocreate   C:\Users\leell\go\src\beego-web\main.go
2024/01/15 21:40:04 SUCCESS  ▶ 0003 New application successfully created!

beego-web 文件结构:

beego-web
├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
├── tests
│   └── default_test.go
└── views└── index.tpl

app.conf : 配置文件

controllers:请求分发控制器

routers: 路由

static: css、img、js等配置文件

tests: 测试程序

views:页面

启动beego-web web服务

C:\Users\leell\go\src\beego-web>go mod init beego-web
go: C:\Users\leell\go\src\beego-web\go.mod already existsC:\Users\leell\go\src\beego-web>go mod tidy
go: finding module for package github.com/kr/text
go: found github.com/kr/text in github.com/kr/text v0.2.0C:\Users\leell\go\src\beego-web>bee run
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2024/01/15 21:50:11 INFO     ▶ 0001 Using 'beego-web' as 'appname'
2024/01/15 21:50:11 INFO     ▶ 0002 Initializing watcher...
cannot install, GOBIN must be an absolute path
2024/01/15 21:50:28 SUCCESS  ▶ 0003 Built Successfully!
2024/01/15 21:50:28 INFO     ▶ 0004 Restarting 'beego-web.exe'...
2024/01/15 21:50:28 SUCCESS  ▶ 0005 './beego-web.exe' is running...
2024/01/15 21:50:29.819 [I] [server.go:281]  http server Running on http://:8080

访问localhost:8080

api项目创建

通过 bee api 创建api项目

C:\Users\leell\go\src>bee api beego-api
2024/01/15 21:54:15.539 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2024/01/15 21:54:15 INFO     ▶ 0001 Generate api project support go modules.
2024/01/15 21:54:15 INFO     ▶ 0002 Creating API...create   C:\Users\leell\go\src\beego-api\go.modcreate   C:\Users\leell\go\src\beego-apicreate   C:\Users\leell\go\src\beego-api\confcreate   C:\Users\leell\go\src\beego-api\controllerscreate   C:\Users\leell\go\src\beego-api\testscreate   C:\Users\leell\go\src\beego-api\conf\app.confcreate   C:\Users\leell\go\src\beego-api\modelscreate   C:\Users\leell\go\src\beego-api\routers\create   C:\Users\leell\go\src\beego-api\controllers\object.gocreate   C:\Users\leell\go\src\beego-api\controllers\user.gocreate   C:\Users\leell\go\src\beego-api\tests\default_test.gocreate   C:\Users\leell\go\src\beego-api\routers\router.gocreate   C:\Users\leell\go\src\beego-api\models\object.gocreate   C:\Users\leell\go\src\beego-api\models\user.gocreate   C:\Users\leell\go\src\beego-api\main.go
2024/01/15 21:54:15 SUCCESS  ▶ 0003 New API successfully created!

启动beego-web web服务

C:\Users\leell\go\src\beego-api>go mod tidy
go: finding module for package github.com/kr/text
go: found github.com/kr/text in github.com/kr/text v0.2.0C:\Users\leell\go\src\beego-api>bee run
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2024/01/15 21:56:20 INFO     ▶ 0001 Using 'beego-api' as 'appname'
2024/01/15 21:56:20 INFO     ▶ 0002 Initializing watcher...
cannot install, GOBIN must be an absolute path
2024/01/15 21:56:26 SUCCESS  ▶ 0003 Built Successfully!
2024/01/15 21:56:26 INFO     ▶ 0004 Restarting 'beego-api.exe'...
2024/01/15 21:56:26 SUCCESS  ▶ 0005 './beego-api.exe' is running...
2024/01/15 21:56:28.138 [I] [server.go:281]  http server Running on http://:8080

生成的routers.go文件,更多路由设置参考文章:beego 路由设置 - 汇思班

func init() {ns := beego.NewNamespace("/v1",beego.NSNamespace("/object",beego.NSInclude(&controllers.ObjectController{},),),beego.NSNamespace("/user",beego.NSInclude(&controllers.UserController{},),),)beego.AddNamespace(ns)
}

当访问接口:

[root@k8s-master01 fastcms]# curl -X 'GET'  'http://192.168.10.101:8080/v1/user'   -H 'accept: application/json'
{"user_11111": {"Id": "user_11111","Username": "astaxie","Password": "11111","Profile": {"Gender": "male","Age": 20,"Address": "Singapore","Email": "astaxie@gmail.com"}}
}

bee项目打包

pack 目录用来发布应用的时候打包,会把项目打包成 zip 包,这样我们部署的时候直接把打包之后的项目上传,解压就可以部署了

C:\Users\leell\go\src\beego-web>bee pack
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2024/01/16 00:14:00 INFO     ▶ 0001 Packaging application on 'C:\Users\leell\go\src\beego-web'...
2024/01/16 00:14:00 INFO     ▶ 0002 Building application (beego-web)...
2024/01/16 00:14:00 INFO     ▶ 0003 Using: GOOS=windows GOARCH=amd64
2024/01/16 00:14:05 SUCCESS  ▶ 0004 Build Successful!
2024/01/16 00:14:05 INFO     ▶ 0005 Writing to output: C:\Users\leell\go\src\beego-web\beego-web.tar.gz
2024/01/16 00:14:05 INFO     ▶ 0006 Excluding relpath prefix: .
2024/01/16 00:14:05 INFO     ▶ 0007 Excluding relpath suffix: .go:.DS_Store:.tmp:go.mod:go.sum
2024/01/16 00:14:06 SUCCESS  ▶ 0008 Application packed!

会在beego-web目录下生成一个beego-web.tar.gz文件,文件列表:

views
static
conf
beego-web.exe

异常问题

刚开始访问http://192.168.10.101:8080/v1/user 出现下面的问题,排查了好久,都开始怀疑beego是否是个稳定的框架了。

​​结果发现可能是beego是v1版本,升级了v2就正常了

PS C:\Users\leell\go\src\beego-api> go get github.com/astaxie/beego/v2
go: module github.com/astaxie/beego@upgrade found (v1.12.3), but does not contain package github.com/astaxie/beego/v2

这样设计合理多了,里面的接口地址通过接口注解就能访问了,做过Java来写go没有注解确实还是希望有这种便捷的方式开发,看看下面接口注解方式是不是很nice了,完全很轻松实现restful api的请求方式。通过bee api生成的项目还有put、post、delete的请求方式,自行观看。

// @Title GetAll
// @Description get all Users
// @Success 200 {object} models.User
// @router / [get]
func (u *UserController) GetAll() {users := models.GetAllUsers()u.Data["json"] = usersu.ServeJSON()
}// @Title Get
// @Description get user by uid
// @Param	uid		path 	string	true		"The key for staticblock"
// @Success 200 {object} models.User
// @Failure 403 :uid is empty
// @router /:uid [get]
func (u *UserController) Get() {uid := u.GetString(":uid")if uid != "" {user, err := models.GetUser(uid)if err != nil {u.Data["json"] = err.Error()} else {u.Data["json"] = user}}u.ServeJSON()
}

参考文章:https://www.fansimao.com/785059.html

https://www.huisiban.com/703561.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细讲解Python连接Mysql的基本操作

目录 前言1. mysql.connector2. pymysql 前言 连接Mysql一般有几种方法,主要讲解mysql.connector以及pymysql的连接 后续如果用到其他库还会持续总结! 对于数据库中的表格,本人设计如下:(为了配合下面的操作) 1. mysql.connector mysql.connector 是一…

自动化的自动化(1)--OPCUA2HTML5

现在的自动化工程师是令人沮丧的,他们努力地实现各个行业的自动化系统,自己却停留在敲键盘的手工劳作的阶段,该解放自己了。这就是“自动化实现自动化”的话题。 OPC 统一架构(简称 OPC UA)是现代工厂自动化中用于机器…

漏洞复现-Yearning front 任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

身体互联网 (IoB)

现在,我们的互联网网关就是我们手中的一个小设备。 普渡大学副教授施里亚斯森表示。 我们不断地看着这个盒子,我们低着头走路,我们把大部分时间都花在它上面。如果我们不想让这种未来继续下去,我们就需要开发新技术。相反&#x…

#RAG##AIGC#检索增强生成 (RAG) 基本介绍和入门实操示例

本文包括RAG基本介绍和入门实操示例 RAG 基本介绍 通用语言模型可以进行微调以实现一些常见任务,例如情感分析和命名实体识别。这些任务通常不需要额外的背景知识。 对于更复杂和知识密集型的任务,可以构建基于语言模型的系统来访问外部知识源来完成任…

系统架构11 - 数据库基础(上)

数据库基础 数据库基本概念概述三级模式、两级映像概念模式外模式内模式二级映像逻辑独立性物理独立性 数据库设计需求分析概念结构设计逻辑结构设计物理设计数据库实施阶段据库运行和维护阶段 数据模型E-R模型关系模型模型转换E-R图的联系 关系代数 数据库基本概念 概述 数据…

openpyxl绘制图表

嘿,你是不是在处理Excel文件时感到束手无策?是不是想要一个简单而又强大的工具来处理数据分析和图表制作?别担心,我们有解决方案!让我向你介绍openpyxl,这是一个Python库,专门用于处理Excel文件…

使用MDT将系统升级为Win10

创建升级到Win10任务序列 右键选择Task Sequence ,然后选择NEW Task Sequence 填写ID name 默认配置 选择企业版 默认配置 填写组织 输入Administrator密码 点击下一步 等待完成 我们提前安装一台WIN7,并激活 选择打开 选择是 选择我们要创建好的升级win…

2.3 数据链路层03

2.3 数据链路层03 2.3.7 以太网交换机 1、以太网交换机的基本功能 以太网交换机是基于以太网传输数据的交换机,以太网交换机通常都有多个接口,每个接口都可以直接与一台主机或另一个以太网交换机相连,一般都工作在全双工方式。 以太网交换…

C程序技能:彩色输出

在终端上输出的字体总是单色,但在一些场景彩色输出更能满足需求,在Linux环境中,可以使用终端控制字符来设置输出字符的颜色,在部分版本的Windows系统中也可以使用。本文参考一些文献简要介绍一下在Windows下彩色输出的方法。 1. …

Rust-借用和生命周期

生命周期 一个变量的生命周期就是它从创建到销毁的整个过程。其实我们在前面已经注意到了这样的现象: 然而,如果一个变量永远只能有唯一一个入口可以访问的话,那就太难使用了。因此,所有权还可以借用。 借用 变量对其管理的内存…

从零开始:生产环境如何部署 Bytebase

Bytebase 是面向研发和 DBA 的数据库 DevOps 和 CI/CD 协同平台。目前 Bytebase 在全球类似开源项目中 GitHub Star 数排名第一且增长最快。 Bytebase 的架构 Bytebase 是一个单体架构 (monolith),前端是 Vue3 TypeScript,后端是 Go。前端利用 Go 1.6 …

MySQL面试题 | 09.精选MySQL面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

linux下485通信调试记录

1、使用linux下使用串口调试助手 linux下可以安装并使用下述串口调试工具进行串口测试: 1.1、cutecom cutecom是linux下常用的图形化串口调试软件,通过以下命令安装并打开: sudo apt-get install cutecom sudo cutecom显示如下&#xff1…

【IPC通信--共享内存】

进程间通信目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:多个进程之间共享同样的资源。 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如…

【CSS】解决height = line-height 文字不垂直居中(偏上、偏下)的问题

解决办法1: 查看 font-family 属性,确认是否是因为字体而导致的不垂直居中问题。 其他小知识: 基线就是小写x字母的下边缘(线) 就是我们常说的 基线。line-height 属性设置的行高也就是定义的两行文字基线之间的距离! 参考文章:…

网络共享服务

存储类型:直连式(DAS):距离最近,存储设备且直接连接到服务器上 存储区域网络(SAN):适用于大型应用或数据库系统,可以使用文件的空间, 以及管理空间…

canvas绘制图片的三种方法(图文示例)

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

Apache StringUtils:Java字符串处理工具类

简介 在我们的代码中经常需要对字符串判空,截取字符串、转换大小写、分隔字符串、比较字符串、去掉多余空格、拼接字符串、使用正则表达式等等。如果只用 String 类提供的那些方法,我们需要手写大量的额外代码,不然容易出现各种异常。现在有…

任务13:使用MapReduce对天气数据进行ETL(获取各基站ID)

任务描述 知识点: 天气数据进行ETL 重 点: 掌握MapReduce程序的运行流程熟练编写MapReduce程序使用MapReduce进行ETL 内 容: 编写MapReduce程序编写Shell脚本,获取MapReduce程序的inputPath将生成的inputPath文件传入到Wi…