>백엔드 개발 >Golang >Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?

Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-25 01:48:17280검색

How to Efficiently Handle Preflight CORS Requests in Go?

Go에서 실행 전 CORS 요청 처리

사이트 간 HTTP 요청을 개발할 때 요청의 안전성을 확인하기 위해 실행 전 OPTIONS 요청이 발생할 수 있습니다. 이러한 요청을 적절하게 처리하는 것은 Go 컨텍스트에서 매우 중요합니다.

한 가지 기본 접근 방식은 처리기 기능에서 요청 메서드를 확인하는 것입니다.

func AddResourceHandler(rw http.ResponseWriter, r *http.Request) {
  switch r.Method {
  case "OPTIONS":
    // handle preflight
  case "PUT":
    // respond to actual request
  }
}

또 다른 옵션은 Gorilla의 mux 패키지를 활용하여 관련 URL 경로에 대한 실행 전 "OPTIONS" 처리기:

r := mux.NewRouter()
r.HandleFunc("/someresource/item", AddResourceHandler).Methods("PUT")
r.HandleFunc("/someresource/item", PreflightAddResourceHandler).Methods("OPTIONS")

그러나 보다 우아한 접근 방식을 위해서는 래핑을 고려하세요. REST 핸들러:

func corsHandler(h http.Handler) http.HandlerFunc {
  return func(w http.ResponseWriter, r *http.Request) {
    if (r.Method == "OPTIONS") {
      //handle preflight in here
    } else {
      h.ServeHTTP(w,r)
    }
  }
}

그런 다음 핸들러를 다음과 같이 래핑할 수 있습니다.

http.Handle("/endpoint/", corsHandler(restHandler))

로직을 분리하고 CORS 핸들러를 재사용하면 코드를 간소화하고 향상시킬 수 있습니다. 유지관리가 용이합니다.

위 내용은 Go에서 실행 전 CORS 요청을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.