ホームページ > バックエンド開発 > Golang > 引数を Jin ルーター ハンドラーに渡すにはどうすればよいですか?

引数を Jin ルーター ハンドラーに渡すにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-02 22:37:42
オリジナル
551 人が閲覧しました

How Can I Pass Arguments to Gin Router Handlers?

Gin のルーター ハンドラーに引数を渡す

Gin を使用して Go で RESTful API を構築する場合、引数をルート ハンドラーに渡す必要があるシナリオに遭遇する可能性があります。この記事では、これを実現する方法を検討し、さまざまな状況への適合性を評価します。

アプリケーション全体の依存関係のグローバル変数

1 つのアプローチは、グローバル変数を使用して、すべてのアプリケーションで共有される依存関係を保存することです。データベース接続プールなどのルート。ただし、これは密結合やコードの保守が困難になる可能性があるため、通常は推奨されません。

クロージャを介した引数の受け渡し

あるいは、クロージャを使用して、受け入れ可能なハンドラ関数を作成することもできます。追加の引数。このアプローチにより、コードが分離された状態に保たれ、依存関係をより柔軟に渡すことができます。

たとえば、引数としてデータベース オブジェクトを必要とするハンドラー関数を考えてみましょう。

import "github.com/gin-gonic/gin"
import "database/sql"

func SomeHandler(db *sql.DB) gin.HandlerFunc {
    return func(c *gin.Context) {
        // Your handler code goes here
    }
}
ログイン後にコピー

この例では、 SomeHandler は、Gin のルーター メソッドを満たす gin.HandlerFunc を返します。返された関数は、次のようにルーターに登録できます。

db, err := sql.Open(...)
// handle the error

router := gin.Default()
router.GET("/test", SomeHandler(db))
ログイン後にコピー

クロージャーを利用することで、懸念事項の分離を維持し、グローバル状態を回避しながら、依存関係を明示的に渡すことができます。オプションの引数は Go では直接サポートされていませんが、クロージャは同様の効果を達成するための柔軟なソリューションを提供します。

以上が引数を Jin ルーター ハンドラーに渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート