iris
截止目前的文章已經將 go 語言的內容說明了五成左右了,。接下來開始要進入 iris 這個框架的內容,所以今天這篇先來個 iris 的安裝以及初體驗。
iris 安裝
本篇主旨在於協助大家配置好 iris 的環境,所以內容分成兩部分,其一是協助安裝、其二是驗證安裝的狀況是否可以開發,接下來先協助大家安裝。
iris 安裝方式
相信有看過前一篇文章的讀者們所缺的是 iris 的程式倉,不過可能還是會有讀者遇到問題,總之今天這篇就帶大家準備好 iris 的環境。
首先先準備好資料夾結構,這裡可以到project layout下載資料結構,接下來在該專案目錄執行以下指令
go mod init [projectName]
go get github.com/kataras/iris/v12@master
go mod vender
相信經過執行這命令已經安裝好第三方函式庫,接下來要寫些 iris 的程式碼確定安裝完成。
iris 初體驗
再經過上述步驟相信大家已經安裝好 iris的函式庫,接下來要確認環境是否安裝完整就是先在專案的 cmd
下新增一個 main.go
並貼入以下內容
package main
import "github.com/kataras/iris/v12"
func main() {
app := iris.New()
booksAPI := app.Party("/books")
{
booksAPI.Use(iris.Compression)
// GET: http://localhost:8080/books
booksAPI.Get("/", list)
// POST: http://localhost:8080/books
booksAPI.Post("/", create)
}
app.Listen(":8080")
}
// Book example.
type Book struct {
Title string `json:"title"`
}
func list(ctx iris.Context) {
books := []Book{
{"Mastering Concurrency in Go"},
{"Go Design Patterns"},
{"Black Hat Go"},
}
ctx.JSON(books)
// TIP: negotiate the response between server's prioritizes
// and client's requirements, instead of ctx.JSON:
// ctx.Negotiation().JSON().MsgPack().Protobuf()
// ctx.Negotiate(books)
}
func create(ctx iris.Context) {
var b Book
err := ctx.ReadJSON(&b)
// TIP: use ctx.ReadBody(&b) to bind
// any type of incoming data instead.
if err != nil {
ctx.StopWithProblem(iris.StatusBadRequest, iris.NewProblem().
Title("Book creation failure").DetailErr(err))
// TIP: use ctx.StopWithError(code, err) when only
// plain text responses are expected on errors.
return
}
println("Received Book: " + b.Title)
ctx.StatusCode(iris.StatusCreated)
}
上面例子是來自於 iris document 這是一個基本的api 接口,接下來執行以下命令即可
go run ./cmd/main.go
經過執行這命令相信大家的本機應該已經執行起一個api服務了。
結論
今天這篇先協助大家配置好 iris 的環境,接下來要開始進入 iris 的內容了。