博客 / 詳情

返回

從零到一 用Go語言構建你的第一個高性能Web服務

使用Go語言從零開始搭建一個Web服務,包括環境搭建、路由處理、中間件使用、JSON和表單數據處理等關鍵步驟,提供豐富的代碼示例。

環境搭建

在開始開發之前,我們需要確保本地環境已經安裝了Go語言開發環境。

安裝Go語言

可以從Go語言官網下載適合你操作系統的安裝包,並按照官網的指南進行安裝。

配置開發工具

推薦使用VS Code或GoLand進行Go語言開發。以下是VS Code的配置步驟:

安裝VS Code編輯器。

安裝Go插件:打開VS Code,進入插件市場,搜索並安裝Go插件。
配置Go開發環境:確保Go語言的安裝路徑已添加到系統環境變量中。
創建項目結構
創建一個新的項目文件夾,並初始化Go模塊。

mkdir simple-web-server
cd simple-web-server
go mod init simple-web-server

創建HTTP服務器

我們將使用Go語言高性能web框架murphy(https://gitee.com/oshine/murphy)來創建一個簡單的HTTP服務器。

創建主程序入口main.go文件

在項目根目錄下創建一個名為main.go的文件,導入如下代碼。

package main

import (
    "gitee.com/oshine/murphy/core"
    "gitee.com/oshine/murphy/ctl"
    "github.com/valyala/fasthttp"
    "log"
)

type HomeController struct {
    ctl.EmptyController
}

func (self *HomeController) Index(ctx *fasthttp.RequestCtx) error {
    self.WithCtx(ctx)

    html := `<html><body>
    <div>用户名為:admin,密碼為:20</div>
    <form method="POST" action="/api/home/submit">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name">
        <input type="text" id="age" name="age">
        <input type="submit" value="Submit">
    </form>
    </body></html>`

    ctx.SetContentType("text/html; charset=utf-8")

    ctx.Write([]byte(html))

    return nil
}

func (self *HomeController) Submit(ctx *fasthttp.RequestCtx) error {
    self.WithCtx(ctx)

    n := ctx.PostArgs().Peek("name")
    log.Println(n)

    // 獲取參數name
    name := self.PostParam("name")

    // 獲取參數age
    age := self.AnyPostParam("age").ToInt64()

    log.Println(name, age)

    if name == "admin" && age == 20 {
        return self.Success("密碼正確")
    }

    return self.Error("密碼錯誤")
}

func main() {
    svr := &core.Server{}
    svr.Http().
        Group("/api", func(group *core.SvrGroup) {

            group.Home("/home/index") // let "/" = api/"home/index"

            group.Bind(
                &HomeController{}, // home
                //&OtherController{},
                //&***Controller{},
            )

        }).RunTLS("127.0.0.1:8000", "", "")

}

運行服務器

在終端中運行以下命令來啓動服務器:

go run main.go

打開瀏覽器,訪問http://localhost:8000,你將看到頁面顯示的表單。

測試表單功能
填寫admin 20 提交,返回密碼正確。

通過以上步驟,我們已經成功創建了一個簡單的Go Web服務,並實現了路由處理和表單數據處理。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.