>백엔드 개발 >Golang >Golang 및 Gin 웹 프레임워크 - router.Run() 이후 코드 실행

Golang 및 Gin 웹 프레임워크 - router.Run() 이후 코드 실행

王林
王林앞으로
2024-02-11 23:03:081028검색

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

php 편집기 Banana는 Golang 및 Gin 웹 프레임워크에 대한 흥미로운 콘텐츠를 제공합니다. Gin을 사용하여 웹 애플리케이션을 작성할 때, router.Run() 이후에 일부 코드를 실행해야 하는 경우가 많습니다. 이러한 코드에는 데이터베이스 연결, 캐시 초기화 및 기타 작업이 포함될 수 있습니다. 이 글에서는 Gin 프레임워크에서 router.Run() 이후에 코드를 실행하는 방법을 구현하는 방법을 자세히 소개하여 Gin 프레임워크의 사용 기술을 더 잘 익히는 데 도움을 줍니다.

질문 내용

아주 초보라서 당연한 내용이라면 양해 부탁드립니다.

Oauth 2.0 인증을 위한 코드를 작성하느라 바쁩니다. 이는 콜백 URL을 사용할 수 있어야 함을 의미합니다. 내 코드에서 콜백 끝점을 생성해야 하며 일단 실행되면 콜백 끝점에 연결될 인증 끝점을 호출해야 합니다.

제 문제는 gin에서 run()을 호출하면 실행이 차단되므로 콜백 엔드포인트가 실행되고 나면 더 이상 인증을 수행할 수 없다는 것입니다. 인증 흐름을 완료할 수 있도록 별도의 고루틴에서 이 코드를 실행할 수 있는 방법이 있습니까?

다음은 내 주요 기능의 대략적인 코드 예입니다.

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

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

Solution

메인 고루틴에서 리스너를 생성하세요. 고루틴에서 http 서버를 시작합니다. 기본 고루틴에서 인증 흐름을 계속합니다.

으아악

기본 고루틴에서 리스너를 생성하면 리스너가 인증 흐름에서 콜백할 준비가 된 것입니다.

위 내용은 Golang 및 Gin 웹 프레임워크 - router.Run() 이후 코드 실행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제