HTTP 핸들러 내에서 컨텍스트 값 설정
컨텍스트 값은 HTTP 애플리케이션의 핸들러 간에 데이터를 전달하는 편리한 방법을 제공합니다. 이 Q&A는 http.HandleFunc 내에서 컨텍스트 값을 설정하는 모범 사례를 보여줍니다.
질문:
http.HandleFunc 내에서 컨텍스트 값을 효과적으로 설정하는 방법은 무엇입니까?
답변:
요청 개체를 덮어쓰는 것과 관련된 질문에 제시된 접근 방식은 최적이 아닙니다. 대신 Request.WithContext 메서드를 사용하여 요청의 단순 복사본을 만들고 새 복사본에 컨텍스트 값을 설정합니다. 이 얕은 복사본에 대한 포인터를 반환합니다.
코드:
func setValue(r *http.Request, val string) *http.Request { return r.WithContext(context.WithValue(r.Context(), myContext, val)) }
핸들러 호출:
다른 핸들러를 호출하는 경우 , 수정된 요청을 다음과 함께 전달합니다.
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { r = setValue(r, "foobar") anotherHandler.ServeHTTP(w, r) })
이 접근 방식은 다음을 보장합니다.
위 내용은 `http.HandleFunc` 내에서 컨텍스트 값을 올바르게 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!