>백엔드 개발 >Golang >Gorilla Mux GET 요청에서 쿼리 매개변수를 선택 사항으로 만드는 방법은 무엇입니까?

Gorilla Mux GET 요청에서 쿼리 매개변수를 선택 사항으로 만드는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 19:18:02711검색

How to Make Query Parameters Optional in Gorilla Mux GET Requests?

Gorilla Mux를 사용하는 GET 요청의 선택적 쿼리 매개변수

Gorilla Mux에서 HTTP GET 요청으로 작업할 때 다음을 허용하는 것이 바람직한 경우가 많습니다. 선택적 쿼리 매개변수. 기본적으로 경로 정의에 쿼리 매개변수를 지정하면(예: Queries("username", "{username}")) 해당 매개변수가 필수로 포함됩니다.

문제

질문에서 강조된 바와 같이, 제공된 코드에서는 요청에 "사용자 이름" 및 "이메일" 쿼리 매개변수가 모두 있어야 합니다. 그러나 요구 사항은 선택적 쿼리 문자열을 허용하여 매개 변수 중 하나 또는 둘 다를 제공할 수 있는 유연성을 갖는 것입니다.

해결책

이를 해결하려면 다음 단계를 따르세요. 권장 사항:

  1. 경로 정의에서 쿼리 제거: 아래와 같이 경로 정의에서 쿼리 블록을 제거합니다.
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
  1. 핸들러 함수에서 쿼리 매개변수 추출: UserByValueHandler에서 r.URL.Query()를 사용하여 쿼리 매개변수를 검색합니다.
func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
       v := r.URL.Query()

       username := v.Get("username")
       email := v.Get("email")
       .....
}

이 접근 방식은 선택적 쿼리 매개변수를 허용합니다. . 요청에 특정 매개변수가 제공되지 않으면 v.Get()은 빈 문자열을 반환하며 이는 코드에서 적절하게 처리될 수 있습니다.

위 내용은 Gorilla Mux GET 요청에서 쿼리 매개변수를 선택 사항으로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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