iT邦幫忙

2022 iThome 鐵人賽

DAY 2
0
DevOps

用K8s打造你的Youtube系列 第 2

GO 建立初始專案

  • 分享至 

  • xImage
  •  

筆者在這邊使用mac示範如何在mac上操作go的專案

brew install go

測試看看go有沒有安裝成功

$ go version

go version go1.19 darwin/amd64

我們來建立我們第一個專案資料夾youtube,然後在建立我們的第一個服務 login,並在裡面建立一個檔案叫做main.go

Desktop/youtube
├── login
	  ├── main.go

// main.go

package main

import (
	"log"
	"net/http"
)

func main() {
	http.HandleFunc("/", test)

	// test teee tttsdsds

	err := http.ListenAndServe(":8888", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}
}

func test(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte(`my first website`))
}

檔案新增好了之後,輸入指令

$ go run main.go

然後在瀏覽器開 http://localhost:8888/ ,看看是不是出現跟我一樣的畫面

https://ithelp.ithome.com.tw/upload/images/20220916/201185258oshJlCi2I.png

GO的細節再請讀者自己了解,我這邊會直接貼code快速講過。我們將使用gin的web框架來進行開發。使用 go get能夠將 gin 安裝到自己的 package 當中。package 的位置通常會在GOROOT的後方建立資料夾pkg。GOROOT的位置可以使用go env查看。舉例來說,我跑了一個 go get gin的指令

go get github.com/gin-gonic/gin

他會自動安裝到 GOROOT/pkg內。然後我在專案的檔案中引入gin

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

當我運行的時候,就會自動去GOROOT裡面找到pkg做打包並運行

加入request handler

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func returnJson(c *gin.Context) {
	m := map[string]string{"status": "200"}
	j, _ := json.Marshal(m)
	c.Data(http.StatusOK, "application/json", j)
}

func returnJson2(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"status": "200",
	})
}

func main() {
	server := gin.Default()
	server.LoadHTMLGlob("template/*")
	server.GET("/", returnJson)
	server.GET("/test", returnJson2)
	server.Run(":8888")
}

現在,我們就有了可以跟據route跑結果的服務了。GO專案先到這邊,我們隔天來講container


上一篇
微服務入門概觀
下一篇
使用 Docker 建立 container
系列文
用K8s打造你的Youtube13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言