例如,我想做/api/v1/users/id/{id}
。
此刻,我有这个:
mux := http.NewServeMux()
mux.Handle("/api/v1/users", HandleUsersV1{db: db, mux: mux})
log.Fatal(http.ListenAndServe(fmt.Sprintf("%s%d", ":", portNumber), mux))
我想要:
mux := http.NewServeMux()
mux.Handle("/api/v1", HandleV1{})
然后在HandleV1
:
mux.HandleFunc("/users/{id}", handler)
我知道Gorilla Mux可以帮我做PathPrefix
,但是我更喜欢net/http
。
该标准net/http
不支持动态路径段,因此/{id}
不会按您想象的那样工作。至于前缀,您可以使用此https://golang.org/pkg/net/http/#StripPrefix。
v1mux := http.NewServeMux()
v1mux.HandleFunc("/users/", handler)
mux := http.NewServeMux()
mux.Handle("/api/v1/", http.StripPrefix("/api/v1", v1mux))
log.Fatal(http.ListenAndServe(fmt.Sprintf("%s%d", ":", portNumber), mux))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句