我已经开始了一个小型的个人API,作为Go的学习练习,在尝试测试它时,我发现在Postman中进行此类调用时不会触发端点GET/find/{id}
。
多路复用路由器:
router.HandleFunc("/find/{id}", controller.Find).Methods("GET")
控制器方法:
func Find(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
id := vars["id"]
...
}
前一个对API的调用:
localhost:8080/find/[cb&%AD%87"%8CV
也许是一些我看不见的简单的东西?
我正在使用Gorilla mux,
实现是类似的,你可以在这里阅读更多关于它的
package HTTPServer
import (
"net/http"
"github.com/gorilla/mux"
)
type Route struct {
Name string
Method string
Pattern string
HandlerFunc http.HandlerFunc
}
type Routes []Route
var routes = Routes{
{"GetFirstForm", "GET", "/firstForm/{id}", GetFirstForm}{
//GetFirstForm getting first form by ECO id
func GetFirstForm(w http.ResponseWriter, r *http.Request) {
var vars = mux.Vars(r)
ecoID := vars["id"]
///your logic
}