簡単なWebAPIを作成する
簡単なWebAPIを作成する
WebAPIについて学んだところで、簡単なWebAPIを作成してみましょう。
Webフレームワーク
今回は、WebAPIを作成するために、ginというWebフレームワークを使います。
Webフレームワークとは、ウェブサイトやウェブアプリケーションを作るためのツールやライブラリの集まりです。
開発者がゼロから全てを作らなくても、ルーティングやリクエストの処理、レスポンスの生成などを簡単に行うことができます。
WebAPI開発環境のセットアップ
今回は、homework/(Gitのユーザー名)/ex-02というディレクトリに作成します。
VSCodeのターミナルから、homework/(Gitのユーザー名)/ex-02のディレクトリを作成し、移動します。
mkdir -p homework/(Gitのユーザー名)/ex-02cd homework/(Gitのユーザー名)/ex-02プロジェクトの初期化
次に、go mod initコマンドを使って、プロジェクトを初期化します。
実際の開発では、標準ライブラリ以外に、外部のパッケージ(モジュール)を使うことがあります。
このモジュール間の依存関係を管理するために、Goでは、go.modファイルを使います。
このコマンドを実行することで、go.modファイルが作成されます。
go mod init github.com/Zli-UoA/zlibootcamp-backend/homework/(Gitのユーザー名)/ex-02Webフレームワークginのインストール
次に、ginをインストールします。
go get -u github.com/gin-gonic/ginHello World!を返すWebAPIの作成
hello.goファイルを作成し、以下のコードを記述します。
package main
import ( "github.com/gin-gonic/gin" "net/http")
func main() { r := gin.Default() // ginのルーターを作成
r.GET("/hello", func(c *gin.Context) { // HTTP GETで/helloにアクセスしたときの処理 c.JSON(http.StatusOK, gin.H{ // HTTPステータスコード200(OK)で、JSONを返す "message": "Hello, World!", }) })
// 演習問題はここに追記してください
r.Run(":8080") // ポート8080でサーバーを起動}$ go run hello.go上のコードは、/helloにアクセスすると、Hello, World!というJSONを返すWebAPIを作成しています。
r := gin.Default()は、ginのルーターを作成しています。
HTTPリクエストを受け取り、URLとHTTPメソッドに応じて処理を振り分けるためのものです。
r.GET("/hello", func(c *gin.Context) {は、HTTP GETで/helloにアクセスしたときの処理を記述しています。
実際にPostmanなどでhttp://localhost:8080/helloにアクセスしてみましょう。
Hello, World!というJSONが返ってくることが確認できるはずです。
これで、簡単なWebAPIの作成ができました!
演習
以下の演習問題は、hello.go内のr.GET("/hello", func(c *gin.Context) {のブロックの下、r.Run(":8080")の上に追記してください。
- HTTP POSTで
/helloにアクセスすると、Hello, Zli!というJSONを返すWebAPIを作成してみましょう。 - HTTP DELETEで
/byeにアクセスすると、Bye!というJSONを返すWebAPIを作成してみましょう。 - HTTP GETで
/konnichiwaにアクセスすると、HTTPステータスコード400(Bad Request)で、Bad RequestというJSONを返すWebAPIを作成してみましょう。
ヒント:http.StatusBadRequestを使うと、HTTPステータスコード400を指定できます。 /hello以外にも、好きなエンドポイント、メッセージを返すAPIを作成してみましょう。