天天看点

GoFrame系列:3、Windows下搭建运行环境并运行demo项目

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​

​服务项目,该项目实现以下几个示例接口:

  1. 用户注册
  2. 用户登录
  3. 用户注销
  4. 登录状态判断
  5. 账号/昵称唯一性校验

并包含以下中间件特性:

  1. 允许跨域访问
  2. 包含权限校验

该示例项目的源代码仓库位于: https://github.com/gogf/gf-demos

由于文档的粘贴的代码可能会滞后于仓库代码,建议通过下载该仓库代码查看示例。后续章节主要对其中的主要代码做介绍。

各位可以通过 ​​开始运行​​​ 章节末尾示例的​

​curl​

​​命令行方式进行测试,也可以通过​

​/document/postman​

​​目录的​

​postman​

​配置进行测试。

3. 安装及运行demo项目

3.1. 在一切开始之前,你需要一个 go 开发环境设置

还不知道的可以看上一篇的内容

3.2. 使用​

​git clone​

​将 repo 克隆到本地文件夹

git clone https://github.com/gogf/gf-demos      

3.3. 导入​

​document/sql/create.sql​

​到您的数据库

SQlite数据库也可以说是嵌入式数据库,基本Android开发大多情况下会使用sqlite数据库,而且python一般也内置sqlite数据库,所以基本上安装了python就可以直接在Windows下使用sqlite(打开cmd输入sqlite3或者在GoLand的终端中直接运行sqlite3即可),默认打开为内存数据库,可以按照提示创建文件存储到文件中。

GoFrame系列:3、Windows下搭建运行环境并运行demo项目

之后通过内置的.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​

​.

cp config/config.example.toml config/config.toml      

​config.toml​

​如有必要,根据您的本地配置进行更新。

3.5. 运行 command ​

​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. 结果展示

成功运行则如下所示:

GoFrame系列:3、Windows下搭建运行环境并运行demo项目

然后就可以在浏览器上输入给出的ip、端口和路由地址进行测试了:

GoFrame系列:3、Windows下搭建运行环境并运行demo项目

如果有服务器的话就可以直接部署上去就是一个简单的websocket聊天工具了:

5. 最后