📖
Gofiberで簡単なWebサーバーを作る
Fiber(Gofiber)を導入する
環境
- MacBook Pro M2
- HomeBrew導入済
環境構築
まず、brewを使ってGoを導入します。
brew install go
これでGoが入ります。
source ~/.zshrc
go version
を用いて確認してください。
プロジェクトの作成
mkdir <プロジェクト名>
cd <プロジェクト名>
go mod init <プロジェクト名>
Fiberを導入
FiberはGoのパッケージです。
一般的なパッケージも同様に導入します。
go get github.com/gofiber/fiber/v2
Hello,World
公式ドキュメントのソースコードを利用します。
package main
import "github.com/gofiber/fiber/v2"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World!")
})
app.Listen(":3000")
}
app.[Method]の紹介
FiberはNodeライクに記述できることが大きな特徴です。
公式ドキュメントから、いくつかの例を紹介します。
単純なルーティング
app.Get("/hoge", func(c *fiber.Ctx) error {
return c.SendString("Hello, World!")
})
パラメータを取得
app.Get("params/:value", func(c *fiber.Ctx) error {
return c.SendString("value: " + c.Params("value"))
// => Get request with value: hello world
})
:value
(:hoge
, :foo
など)を用いて値を取得できます。
パラメータを取得(パラメータは任意)
app.Get("params/:name?", func(c *fiber.Ctx) error {
if c.Params("name") != "" {
return c.SendString("Hello " + c.Params("name"))
// => Hello john
}
return c.SendString("Where is john?")
})
基本的に先ほどと同じですが、
-
?
がついていない場合はexample.com/params/
に対してのリクエストに対してエラーを返します。 -
?
がついている場合はexample.com/params/
に対してのリクエストにも処理が実行されます。
ワイルドカード
app.Get("/wildCards/*", func(c *fiber.Ctx) error {
return c.SendString("API path: " + c.Params("*"))
// => API path: user/john
})
パスを取得せず、example.com/wildCards/
以下のリクエストに同じ処理を行えます。
静的ルーティング
app.Static("/staticFiles", "./thisIsStaticFiles")
他のFWなどではpublic
ディレクトリなどとされているものと同じ挙動をします。
静的ファイルを配置する場合などに使えます。
エラー
app.Get("/newError", func(c *fiber.Ctx) error {
return fiber.NewError(782, "Custom error message")
})
HTTPに782
エラーは存在しませんが、404
エラーなど任意のエラーを設定できます。
Discussion