golang echoフレームワークの使い方 簡単にAPIサーバーを構築する
今回はgolangのechoフレームワークの使い方について解説していきます。
echoとは
echoは高パフォーマンス、拡張可能、軽量はフレームワークでAPIサーバーを構築するのに適しているGo言語のフレームワークです。
フレームワークの特徴やメリットについて以下の記事で詳しく解説しています。
Echoのインストール
echoを使用するにはgo getコマンドを使用してプロジェクトに追加します。
go get -u github.com/labstack/echo/v4
Webサーバーの作成
以下のように実装することで、echoを使用して簡単にWebサーバーを作成することができます。
package main
import (
"net/http"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":8080"))
}
まずはimportブロックに先ほどgetとした、echoを記述してechoフレームワークをインポートしています。
次にmain関数の中でecho.New()を呼び出して、新しいechoインスタンスを作成しています。
そしてe.GETメソッドを使用して、HTTP GETリクエスト用のエンドポイントを定義します。これによりウェブサーバーのルートURL(/)にマッピングされます。
リクエストが来たときに実行されるハンドラ関数を提供します。この関数ではecho.Contextオブジェクトを引数に取り、Hello, World!という文字列をHTTPレスポンスとして返します。
http.StatusOKはHTTPステータスコード200を表し、リクエストが成功したことを意味します。
e.Start(":8080")を呼び出すことで、ポート8080でウェブサーバーを起動します。e.Logger.Fatalは、サーバーの起動中に致命的なエラーが発生した場合にログを出力してプログラムを終了させることができます。
これで実行してみると、ブラウザやHTTPクライアントからhttp://localhost:8080/にアクセスするとHello, World!というレスポンスが返されます。
ルーティング
echoではURLのパスに対してハンドラ関数を登録することでルーティングを定義できます。
e.GET("/users/:id", getUser)
e.POST("/users", saveUser)
e.PUT("/users/:id", updateUser)
e.DELETE("/users/:id", deleteUser)
:idはパスパラメータを表し、echo.Contextを介して取得することができます。
リクエストデータの取得
リクエストからデータを取得するには、echo.Contextインターフェースを使用します。
func getUser(c echo.Context) error {
id := c.Param("id")
return c.String(http.StatusOK, "User ID: " + id)
}
JSONレスポンス
Echoを使用してJSONレスポンスを簡単に返すことができます。
func saveUser(c echo.Context) error {
u := new(User)
if err := c.Bind(u); err != nil {
return err
}
return c.JSON(http.StatusCreated, u)
}
Userはユーザー情報を保持する構造体であり、c.Bindはリクエストボディからこの構造体にデータをバインドします。
golangをもっと詳しくなりたい方に
初めてのGo言語
Go言語の入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。
詳解Go言語Webアプリケーション開発
こちらはGo言語の基礎知識を得たあとに読むことをすすめる本となっています。ハンズオン形式で手を動かしながら実装をしていくことができるため、実際の開発を意識しながらGo言語を学ぶことができます。
以下の記事では他にも筆者が実際に読んでおすすめしたい本をまとめています。
【Go入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)
まだGo言語の勉強を始めていない方、全くの初心者の方にはこちらのUdemy教材が最もおすすめです。
この教材ではgolangの基礎について網羅的に学ぶことができます。ただ見て学ぶだけでなく、講座の中でアプリ作成まで行うことで学んだことの理解をさらに深めることができます。
現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発
個人的に最も勉強になったのは「現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発」という教材です。
本格的なレクチャーに入る前に、なぜGoなのか、なぜFintechなのかについて説明されていることで、Goの概念や意味について大枠から理解することができます。
以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。
この記事が気に入ったらサポートをしてみませんか?