GoFrame系列:3、Windows下搭建运行环境并运行demo项目
文章目录
- GoFrame系列:3、Windows下搭建运行环境并运行demo项目
- 1. 前言
- 2. demo项目简单介绍
- 3. 安装及运行demo项目
- 3.1. 在一切开始之前,你需要一个 go 开发环境设置
- 3.2. 使用`git clone`将 repo 克隆到本地文件夹
- 3.3. 导入`document/sql/create.sql`到您的数据库
- 3.4. 从`config.example.toml`.
- 3.5. 运行 command `go run main.go`,如果成功你会看到如下内容:
- 4. 结果展示
- 5. 最后
1. 前言
接下来我们将在Windows下安装Sqlite3,然后将demo项目创建在Windows下并跟着教程学习框架的基本内容。
2. demo项目简单介绍
为方便小伙伴们快速使用
GoFrame
框架创建一个基本的项目,我们这里以简单的开发示例,使用
GoFrame
框架来创建一个简单的
API
服务项目,该项目实现以下几个示例接口:
- 用户注册
- 用户登录
- 用户注销
- 登录状态判断
- 账号/昵称唯一性校验
并包含以下中间件特性:
- 允许跨域访问
- 包含权限校验
该示例项目的源代码仓库位于: https://github.com/gogf/gf-demos
由于文档的粘贴的代码可能会滞后于仓库代码,建议通过下载该仓库代码查看示例。后续章节主要对其中的主要代码做介绍。
各位可以通过 开始运行 章节末尾示例的
curl
命令行方式进行测试,也可以通过
/document/postman
目录的
postman
配置进行测试。
3. 安装及运行demo项目
3.1. 在一切开始之前,你需要一个 go 开发环境设置
还不知道的可以看上一篇的内容
3.2. 使用 git clone
将 repo 克隆到本地文件夹
git clone
git clone https://github.com/gogf/gf-demos
3.3. 导入 document/sql/create.sql
到您的数据库
document/sql/create.sql
SQlite数据库也可以说是嵌入式数据库,基本Android开发大多情况下会使用sqlite数据库,而且python一般也内置sqlite数据库,所以基本上安装了python就可以直接在Windows下使用sqlite(打开cmd输入sqlite3或者在GoLand的终端中直接运行sqlite3即可),默认打开为内存数据库,可以按照提示创建文件存储到文件中。
之后通过内置的.read命令读入sql文件即可(通过.help获取帮助)。
需要修改一下sql文件,默认的demo是mysql数据库的方言,sqlite识别不了:
CREATE TABLE user (
`id` INT primary key,
`passport` varchar(45) NOT NULL,
`password` varchar(45) NOT NULL,
`nickname` varchar(45) NOT NULL,
`create_at` datetime DEFAULT NULL,
`update_at` datetime DEFAULT NULL
);
3.4. 从 config.example.toml
.
config.example.toml
cp config/config.example.toml config/config.toml
config.toml
如有必要,根据您的本地配置进行更新。
3.5. 运行 command go run main.go
,如果成功你会看到如下内容:
go run main.go
SERVER | DOMAIN | ADDRESS | METHOD | ROUTE | HANDLER | MIDDLEWARE
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /chat | github.com/gogf/gf-demos/app/api.(*apiChat).Index | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /chat/index | github.com/gogf/gf-demos/app/api.(*apiChat).Index | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /chat/setname | github.com/gogf/gf-demos/app/api.(*apiChat).SetName | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /chat/websocket | github.com/gogf/gf-demos/app/api.(*apiChat).WebSocket | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /swagger/* | github.com/gogf/swagger.(*Swagger).Install.func1.1 | HOOK_BEFORE_SERVE
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/checknickname | github.com/gogf/gf-demos/app/api.(*apiUser).CheckNickName | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/checkpassport | github.com/gogf/gf-demos/app/api.(*apiUser).CheckPassport | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/issignedin | github.com/gogf/gf-demos/app/api.(*apiUser).IsSignedIn | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/profile | github.com/gogf/gf-demos/app/api.(*apiUser).Profile-fm | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm,service.(*serviceMiddleware).Auth-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/signin | github.com/gogf/gf-demos/app/api.(*apiUser).SignIn | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/signout | github.com/gogf/gf-demos/app/api.(*apiUser).SignOut | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|-----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------
default | default | :8199 | ALL | /user/signup | github.com/gogf/gf-demos/app/api.(*apiUser).SignUp | service.(*serviceMiddleware).Ctx-fm,service.(*serviceMiddleware).CORS-fm
----------|---------|---------|--------|---------------------|------------------------------------------------
运行时可能会找不到相关的模块,打开go.mod进行模块同步即可,当然,使用Go Modules的话确认一下上节我们所说的Go模块集成环境是否设置了代理,设置了的话会自动建立索引并下载依赖模块。
4. 结果展示
成功运行则如下所示:
然后就可以在浏览器上输入给出的ip、端口和路由地址进行测试了:
如果有服务器的话就可以直接部署上去就是一个简单的websocket聊天工具了: