HTTP 핸들러 패턴에 와일드카드 지정
http.Handler 또는 http.HandleFunc를 사용하여 핸들러를 생성할 때 와일드카드를 지정할 수 있습니다. URL 범위와 일치하는 패턴입니다. 불행하게도 이러한 함수의 패턴은 정규식이 아니며 기본적으로 와일드카드를 지원하지 않습니다.
대신 정규식이나 기타 원하는 패턴을 사용하여 패턴 일치를 지원하는 사용자 정의 핸들러를 만들 수 있습니다. 다음은 정규식을 사용한 예입니다.
import ( "net/http" "regexp" ) type route struct { pattern *regexp.Regexp handler http.Handler } type RegexpHandler struct { routes []*route } func (h *RegexpHandler) Handler(pattern *regexp.Regexp, handler http.Handler) { h.routes = append(h.routes, &route{pattern, handler}) } func (h *RegexpHandler) HandleFunc(pattern *regexp.Regexp, handler func(http.ResponseWriter, *http.Request)) { h.routes = append(h.routes, &route{pattern, http.HandlerFunc(handler)}) } func (h *RegexpHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { for _, route := range h.routes { if route.pattern.MatchString(r.URL.Path) { route.handler.ServeHTTP(w, r) return } } // No pattern matched; send 404 response http.NotFound(w, r) }
자신만의 사용자 정의 핸들러를 구현하면 자신만의 패턴 일치 논리를 정의하고 필요에 따라 다양한 유형의 URL을 처리할 수 있는 유연성을 얻을 수 있습니다.
위 내용은 HTTP 처리기의 URL 패턴에서 와일드카드를 어떻게 일치시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!