0Pricing
Go Academy · レッスン

Ginルーターとルートグループ

エンジンのセットアップ、グループ、パスパラメーター

「Ginルーターとルートグループ」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。

Ginとは

Ginは、Go向けの高性能なHTTP Webフレームワークです。radix treeルーターを使用し、ミドルウェア、JSONバインディング、バリデーションをサポートしているため、REST APIで広く利用されています。

インストールと基本設定

Ginをインポートして、エンジンを作成します。

go get github.com/gin-gonic/gin

package main

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{"message": "pong"})
    })
    r.Run(":8080")
}

gin.Defaultとgin.New

gin.Default()にはLoggerとRecoveryのミドルウェアが含まれます。gin.New()はミドルウェアなしのエンジンを作成します。ミドルウェアを完全に制御したい場合に使用します。

ルートメソッド

GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD、AnyなどのHTTPメソッドに対するルートを登録します。

r.GET("/users", listUsers)
r.POST("/users", createUser)
r.PUT("/users/:id", updateUser)
r.DELETE("/users/:id", deleteUser)

パスパラメータ

c.Param("name")でパスパラメータを取り出します。

r.GET("/users/:id", func(c *gin.Context) {
    id := c.Param("id")
    c.JSON(200, gin.H{"id": id})
})

クエリパラメータ

c.Queryとc.DefaultQueryでクエリパラメータを読み取ります。

page := c.DefaultQuery("page", "1")
limit := c.Query("limit") // "" if absent

ルートグループ

r.Groupを使用すると、関連するルートを共通のプレフィックスの下にまとめられます。グループに適用したミドルウェアは、そのグループ内のすべてのルートに影響します。

api := r.Group("/api/v1")
{
    api.GET("/users", listUsers)
    api.POST("/users", createUser)
    api.PUT("/users/:id", updateUser)
}

ネストしたグループ

グループは、より細かく構成するためにネストできます。

admin := r.Group("/admin")
admin.Use(AdminAuth())
{
    admin.GET("/stats", getStats)
    admin.DELETE("/users/:id", deleteUser)
}

ルートなし/メソッド不許可

r.NoRouteとr.NoMethodを使用すると、404と405を適切に処理できます。

r.NoRoute(func(c *gin.Context) {
    c.JSON(404, gin.H{"error": "not found"})
})

静的ファイル

ディレクトリから静的ファイルを配信します。

r.Static("/static", "./public")
r.StaticFile("/favicon.ico", "./favicon.ico")

http.Handlerとしてのエンジン

Ginの*gin.Engineはhttp.Handlerを実装しているため、タイムアウトを設定するカスタムhttp.Serverと組み合わせて使用できます。

srv := &http.Server{Addr: ":8080", Handler: r, ReadTimeout: 5*time.Second}
srv.ListenAndServe()

クイックチェック

Ginでルートグループを使用する利点は何でしょうか。

まとめ:Ginのルーターとグループ

重要なポイント:

  • gin.Default()にはLoggerとRecoveryが含まれ、gin.New()はカスタム設定に使用します
  • パスパラメータにはc.Param、クエリパラメータにはc.Queryを使用します
  • 共通のプレフィックスとミドルウェアにはr.Group("/prefix")を使用します
  • Ginはhttp.Handlerを実装しているため、カスタムhttp.Serverと組み合わせて使用できます

よくある質問

「Ginルーターとルートグループ」レッスンは無料ですか?

はい。「Ginルーターとルートグループ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。

「Ginルーターとルートグループ」で何を学びますか?

エンジンのセットアップ、グループ、パスパラメーター ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Go Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Ginルーターとルートグループ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このGo Academyレッスンでコードを書いて実行できますか?

はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Ginルーターとルートグループ
  2. リクエストバインディングとバリデーション
  3. レスポンスヘルパーとステータスコード
  4. Ginミドルウェア:認証とロギング
← Go Academyに戻る