作者:交通运输程俊 | 来源:互联网 | 2022-12-07 05:31
例如,我想做/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
.
1> mkopriva..:
该标准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))