Golang は、効率性と同時実行性が高いプログラミング言語であり、Golang を使用してさまざまな種類のアプリケーションを構築する開発者が増えています。その中でも、Web アプリケーションは Golang で最も一般的なアプリケーション シナリオの 1 つであり、この記事では、Golang でよく使用されるいくつかの Web フレームワークとその基本的な使い方を紹介します。
1. 共通 Golang Web フレームワーク
Gin は、豊富な機能を提供し、非常に優れたパフォーマンスを備えた、高速かつ効率的な Web フレームワークです。 Gin の API 設計はシンプルで理解しやすいため、REST API やマイクロサービス アプリケーションの構築に非常に適しています。 Gin は、ミドルウェア、ルーティング グループ化、JSON/XML シリアル化などの一般的な Web 機能を提供します。
Beego は、ルーティング、ミドルウェア、テンプレート レンダリング、ORM などの一般的な Web コンポーネントを含み、Web アプリケーションを提供する完全な Web フレームワークです。プログラム開発に必要な機能をまとめました。 Beego は大規模な Web アプリケーションを簡単に構築でき、RESTful API、Websocket などの機能をサポートしています。
Echo は、標準ライブラリといくつかのサードパーティ パッケージを使用していくつかの機能を提供する、軽量、高性能、拡張が簡単な Web フレームワークです。ルーティング、ミドルウェア、テンプレートのレンダリングなどが含まれます。 Echo のパフォーマンスは非常に優れており、RESTful API やマイクロサービスの構築に非常に適しています。
2. Gin フレームワークの開始
導入する最初のフレームワークとして Gin を選択し、Gin を使用して簡単な Web アプリケーションを構築する方法を見てみましょう。
次のコマンドを使用して、Gin フレームワークをインストールできます:
go get -u github.com/gin-gonic/gin
以下は、Gin フレームワークを使用して作成された Hello World の例です:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.String(200, "Hello, world!") }) r.Run() }
まず、Gin フレームワークのパッケージをインポートします。次に、Gin インスタンスを作成し、文字列「Hello, world!」を返す GET ルートを登録します。最後に、Run メソッドを使用して Web アプリケーションを起動し、ポートをリッスンします。
curl を使用してアプリケーションをリクエストする:
$ curl http://localhost:8080/ Hello, world!
ルーティングは、リクエストを関連するハンドラー関数に接続する Web アプリケーションのコア コンポーネントです。
次は簡単な例です:
package main import "github.com/gin-gonic/gin" func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.String(200, "pong") }) r.GET("/hello/:name", func(c *gin.Context) { name := c.Param("name") c.String(200, "Hello, %s", name) }) r.POST("/login", func(c *gin.Context) { username := c.PostForm("username") password := c.PostForm("password") c.JSON(200, gin.H{"username": username, "password": password}) }) r.Run() }
3 つのルートを使用します:
ミドルウェアは、リクエストがハンドラーに到達する前後に操作を実行できる、Gin フレームワークの重要な機能です。
以下は、Gin ミドルウェアの使用例です:
package main import ( "fmt" "github.com/gin-gonic/gin" "time" ) func CustomMiddleware() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() fmt.Println("Starting middleware") c.Set("request_time", t) c.Next() fmt.Println("Ending middleware") latency := time.Since(t) fmt.Printf("Latency: %v ", latency) } } func main() { r := gin.Default() r.Use(CustomMiddleware()) r.GET("/", func(c *gin.Context) { c.String(200, "Hello, world!") }) r.Run() }
リクエストの開始時刻を記録する CustomMiddleware というミドルウェア関数を作成し、リクエストをハンドラー関数に渡し、リクエストの処理が完了すると終了します。
ミドルウェアを Gin インスタンスに登録し、ルート ルートで単純なハンドラー関数を使用して、「Hello, world!」という文字列を返しました。
アプリケーションを実行すると、出力にミドルウェア レコードが表示されます:
Starting middleware Ending middleware Latency: 277.1µs
3. 概要
この記事では、Golang Three Web フレームワークで一般的に使用されるものを簡単に紹介します。 :ジン、ビーゴ、エコー。また、Gin フレームワークを使用して単純な Web アプリケーションを作成する方法と、ルーティングとミドルウェアの使用方法を示しました。
Golang の学習 Web 開発は、Web フレームワークの学習と切り離せません。ただし、Web フレームワークによって対象となるアプリケーションのシナリオやニーズも異なるため、開発者は実際の状況に基づいて最適なフレームワークを選択する必要があります。
以上がGolang 学習 Web フレームワークの入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。