天天看點

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. 最後