Go 関数は、Web フレームワークで次の目的で使用されます: リクエストを処理し、レスポンスを生成します。再利用可能なプロセッサ機能として利用可能です。機能モジュール化のために機能グループにグループ化できます。前処理または後処理操作を実行するためのミドルウェアとして使用できます。
Go 関数は、さまざまなタスクの実行に使用できる強力なコード ブロックです。 Web フレームワークでは、関数はリクエストの処理、応答の生成、その他のタスクの実行に使用されます。
この記事では、Web フレームワークで Go 関数を使用する方法を説明します。実際のケースとして、人気のある Echo フレームワークを使用します。
まず、単純な Web サービスを作成しましょう:
package main import ( "fmt" "net/http" "github.com/labstack/echo/v4" ) func main() { e := echo.New() e.GET("/", hello) e.Logger.Fatal(e.Start(":1323")) } func hello(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") }
この例では、Echo インスタンス (e
) を作成します。 、GET
ルートを使用してルート URL (/
) を処理します。この URL が要求されると、hello
関数が呼び出され、単純な hello メッセージが返されます。
インライン ハンドラー関数 (上記の hello
関数など) を使用することに加えて、再利用可能な関数をプロセッサとして作成することもできます。これは、関数をパラメーターとして HandlerFunc
メソッドに渡すことによって実現されます。
func myHandler(c echo.Context) error { // TODO: 处理请求 } func main() { e := echo.New() e.GET("/", echo.HandlerFunc(myHandler)) // ... }
大規模な Web アプリケーションでは、同様の機能を持つ関数をグループ化する必要がある場合があります。 Echo では、これは Group
メソッドを使用して実現できます。
func main() { e := echo.New() g := e.Group("/api") g.GET("/users", getUsers) g.POST("/users", createUser) // ... }
ミドルウェアは、ハンドラーの実行前または実行後に実行できる関数です。これらは、リクエストの検証、ヘッダーの追加、またはその他のタスクの実行に使用できます。 Echo では、Use
メソッドを使用してミドルウェアを追加できます:
func authMiddleware(next echo.HandlerFunc) echo.HandlerFunc { return func(c echo.Context) error { // TODO: 验证请求 return next(c) } } func main() { e := echo.New() e.Use(authMiddleware) // ... }
関数をプロセッサとして使用し、ミドルウェアを追加するように前の例を変更してみましょう。
package main import ( "fmt" "net/http" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func myHandler(c echo.Context) error { return c.String(http.StatusOK, "Hello, World!") } func main() { e := echo.New() e.Use(middleware.Logger()) e.GET("/", myHandler) e.Logger.Fatal(e.Start(":1323")) }
このサービスを実行すると、ミドルウェアが各リクエストをログに記録し、myHandler
関数がルート URL のリクエストを処理します。
以上がGolang 関数は Web フレームワークでどのように使用されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。