我是 golang 的新手,正在使用 chi 在 golang 中提供宁静的服务。我正在尝试创建如下路线:
func NewRouter(dm *storage.DatabaseManager) chi.Router {
var router = chi.NewRouter()
router.Method("POST", "/restaurant/search?name={name}",
&SearchRestaurants{DB: dm})
}
这是我从 mysql db 获取的方法:
func (rm *RestaurantManager) SearchRestaurantsFromDB(name string)
([]Restaurant, error) {
var restaurants []Restaurant
var stmt = fmt.Sprintf(`SELECT * FROM %s WHERE name=%s `,
rm.tableName, name)
var err error
if err = rm.Select(&restaurants, stmt); err != nil {
return nil, err
}
return restaurants, nil
}
...以及我如何从中获得:
func (h SearchRestaurants) ServeHTTP(w http.ResponseWriter, r
*http.Request) {
var err error
var result []storage.Restaurant
name := r.URL.Query().Get("name")
if result, err = h.DB.SearchRestaurantsFromDB(name); err != nil {
log.Fatal("Database Error: ", err)
}
fmt.Print(result)
api.WriteJSON(w, result)
log.Print(r.RequestURI)
}
但是我尝试访问此端点,但找不到 404: http://localhost:8000/project/restaurant/search?name= {n}
我可以知道这里的问题吗?
PSrouter.Mount("/project/", restaurant.NewRouter(dm))
在主函数中。