Skip to content

簡単なWebAPIを作成する

簡単なWebAPIを作成する

WebAPIについて学んだところで、簡単なWebAPIを作成してみましょう。

Webフレームワーク

今回は、WebAPIを作成するために、ginというWebフレームワークを使います。 Webフレームワークとは、ウェブサイトやウェブアプリケーションを作るためのツールやライブラリの集まりです。 開発者がゼロから全てを作らなくても、ルーティングやリクエストの処理、レスポンスの生成などを簡単に行うことができます。

WebAPI開発環境のセットアップ

今回は、homework/(Gitのユーザー名)/ex-02というディレクトリに作成します。 VSCodeのターミナルから、homework/(Gitのユーザー名)/ex-02のディレクトリを作成し、移動します。

Terminal window
mkdir -p homework/(Gitのユーザー名)/ex-02
cd homework/(Gitのユーザー名)/ex-02

プロジェクトの初期化

次に、go mod initコマンドを使って、プロジェクトを初期化します。 実際の開発では、標準ライブラリ以外に、外部のパッケージ(モジュール)を使うことがあります。 このモジュール間の依存関係を管理するために、Goでは、go.modファイルを使います。 このコマンドを実行することで、go.modファイルが作成されます。

Terminal window
go mod init github.com/Zli-UoA/zlibootcamp-backend/homework/(Gitのユーザー名)/ex-02

Webフレームワークginのインストール

次に、ginをインストールします。

Terminal window
go get -u github.com/gin-gonic/gin

Hello 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")の上に追記してください。

  1. HTTP POSTで/helloにアクセスすると、Hello, Zli!というJSONを返すWebAPIを作成してみましょう。
  2. HTTP DELETEで/byeにアクセスすると、Bye!というJSONを返すWebAPIを作成してみましょう。
  3. HTTP GETで/konnichiwaにアクセスすると、HTTPステータスコード400(Bad Request)で、Bad RequestというJSONを返すWebAPIを作成してみましょう。
    ヒント: http.StatusBadRequestを使うと、HTTPステータスコード400を指定できます。
  4. /hello以外にも、好きなエンドポイント、メッセージを返すAPIを作成してみましょう。