ホームページ  >  記事  >  バックエンド開発  >  Golang および Jin Web フレームワーク - router.Run() の後にコードを実行します。

Golang および Jin Web フレームワーク - router.Run() の後にコードを実行します。

王林
王林転載
2024-02-11 23:03:08993ブラウズ

Golang 和 Gin Web 框架 - 在 router.Run() 之后执行代码

php Editor Banana は、Golang と Jin Web フレームワークに関するエキサイティングなコンテンツをお届けします。 Gin を使用して Web アプリケーションを作成する場合、router.Run() の後にいくつかのコードを実行する必要があることがよくあります。これらのコードには、データベース接続、キャッシュの初期化、その他の操作が含まれる場合があります。この記事では、Gin フレームワークの router.Run() の後にコードを実行するメソッドの実装方法を詳しく紹介し、Gin フレームワークの使用スキルをよりよく習得するのに役立ちます。

質問内容

初心者なので、当たり前のことかもしれませんが、ご容赦ください。

私は go で oauth 2.0 認証用のコードを書くのに忙しいです。これの一部は、コールバック URL を利用できるようにする必要があることを意味します。私のコードではコールバック エンドポイントを作成する必要があり、それが起動して実行されたら、コールバック エンドポイントに接続する承認エンドポイントを呼び出す必要があります。

私の問題は、gin で run() を呼び出すと実行がブロックされるため、コールバック エンドポイントが起動して実行された後はそれ以上の承認を行うことができないことです。このコードを別の goroutine で実行して、認証フローを完了できるようにする方法はありますか?

これは、メイン関数のコードの大まかな例です:

r := gin.Default()
//ReqHandler is an HtttpHandler func
r.GET("/redirect", ReqHandler)

r.Run(":5001")
ContinueAuth()

解決策

メインのゴルーチンにリスナーを作成します。 goroutineでhttpサーバーを起動します。メインのゴルーチンで認証フローを続行します。

リーリー

メインの goroutine でリスナーを作成すると、リスナーが認証フローからコールバックできるようになります。

以上がGolang および Jin Web フレームワーク - router.Run() の後にコードを実行します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。