Если вам уже удалось перенаправить трафик c на ваш обработчик, то вы можете просто разобрать путь URL-адреса самостоятельно:
func HandlerFunc(w http.ResponseWriter, request *http.Request) {
segments := strings.Split(request.URL.Path, "/")
// If path is /events/id, then segments[2] will have the id
}
Request.URL.Path уже декодирован URL-адресом, так что если ваш параметры могут содержать косые черты, вместо них используйте Request.RequestURI и url.PathUnescape :
segments := strings.Split(r.RequestURI, "/")
for i := range segments {
var err error
segments[i], err = url.PathUnescape(segments[i])
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
}