スキップしてメイン コンテンツに移動

Gin初心者のハンドラでレスポンス

Gin初心者のハンドラでレスポンス

Gin初心者のためのハンドラ関数入門

GinはGo言語で書かれた高速なWebフレームワークです。ハンドラ関数はリクエスト処理の中心で、gin.Contextを引数に取ります。以下のように定義します。

func helloHandler(c *gin.Context) {
    name := c.DefaultQuery("name", "世界")
    c.String(200, "こんにちは、%s!", name)
}

上記の例では、クエリパラメータからnameを取得し、c.Stringで文字列レスポンスを返しています。ステータスコードは第1引数に指定します。

gin.Contextとレスポンスの基本

gin.Contextはリクエストとレスポンスの両方を扱うオブジェクトです。JSON形式で返す場合はc.JSONを使用します。

func jsonHandler(c *gin.Context) {
    data := map[string]string{
        "message": "Hello, JSON!",
    }
    c.JSON(200, data)
}

c.Stringはテキストレスポンス、c.JSONはJSONレスポンスを生成します。どちらもgin.Contextを介してステータスコードとボディを設定します。

ステータスコードとc.JSON, c.Stringの使い分け

ステータスコードはHTTPの意味を示します。成功時は200、クライアントエラーは400系、サーバーエラーは500系です。ハンドラ関数内で適切に設定することで、クライアントに正しい情報を返せます。

func errorHandler(c *gin.Context) {
    if err := doSomething(); err != nil {
        c.JSON(500, gin.H{
            "error": err.Error(),
        })
        return
    }
    c.String(200, "成功しました")
}

この例では、処理中にエラーが発生した場合は500を返し、成功時は200で文字列を返します。ハンドラ関数はリクエスト処理のエントリーポイントであり、gin.Contextを通じてリクエスト情報を取得し、レスポンスを生成します。

この記事はAIによって作成されました。

コメント