go - 如何获取路线的所有可用方法?
问题描述
我已经这样定义了我的路线:
func Setup(router *mux.Router) {
subrouter := router.PathPrefix("/user").Subrouter()
subrouter.HandleFunc("/", get).Methods(http.MethodGet)
subrouter.HandleFunc("/", post).Methods(http.MethodPost)
subrouter.HandleFunc("/{id:[0-9]+}", put).Methods(http.MethodPut)
subrouter.HandleFunc("/{id:[0-9]+}", del).Methods(http.MethodDelete)
}
由于 GET 和 POST 请求共享相同的路径(/user
),我想像这样将它们放在一个切片中:["GET", "POST"]
。
然后在 GET 请求的处理程序中,我尝试获取Route
结构,并从那里获取其所有相关方法,但我只有一个"GET"
内部切片。
我怎样才能把它们都放在一个切片"GET"
中"POST"
?
func get(w http.ResponseWriter, r *http.Request) {
route := mux.CurrentRoute(r)
fmt.Print(route.GetMethods()) // only ["GET"]
pathName, _ := route.GetPathTemplate()
// data := services.GetUsers()
// res := siren.NewResponse(r, data)
// utils.Json(w, http.StatusOK, res)
}
解决方案
推荐阅读
- python-3.x - Tkinter 按钮需要在同一个网格中创建多次,但不需要,我如何让它做到这一点?
- elasticsearch - 微服务:与多个实例的服务间通信
- swift - 修改swiftui数组值
- php - 正在使用 PHP 和 .htaccess 构建页面
- elasticsearch - 在 Elasticsearch 中对对象进行聚合
- mysql - 优化嵌套 MySQL 查询
- css - Tailwindcss @apply 生成重复规则
- android - 活动到片段迁移
- ios - 如何在 ios 上访问 twitter 过滤器搜索流 api
- flutter - Flutter:在 Navigator 2.0 中更改页面过渡