404 将参数传递给 go-chi 中的 URL 时出错,即使参数已定义

问题描述

我想从我的前端获取限制和偏移值。为此,我编写了以下路由路径

func (s *Server) stockRoutes() {
    s.r.Route("/stock",func(r chi.Router) {
        r.Get("/{limit}{offset}",s.ListStocks(s.ctx))

        r.Route("/{id}",func(r chi.Router) {
            r.Get("/",s.GetStock(s.ctx))
            r.Put("/",s.UpdateStockDetails(s.ctx))
        })
    })
}

我正在以下列方式处理请求。我正在解析 limit 和 offset 的值

func (s *Server) ListStocks(ctx context.Context) http.HandlerFunc {
    return func(rw http.ResponseWriter,r *http.Request) {
        param,_ := strconv.Atoi(chi.URLParam(r,"limit"))
        param2,"offset"))
        limit := int32(param)
        offset := int32(param2)
        arg := db.ListStocksParams{
            Limit:  limit,Offset: offset,}
        stocks,err := s.store.ListStocks(ctx,arg)
        if err != nil {
            http.Error(rw,"error returning list of stocks",http.StatusInternalServerError)
            return
        }
        log.Printf("%+v",stocks)
        json.NewEncoder(rw).Encode(stocks)
    }
}

使用邮递员,我通过以下方式发送请求 http://localhost:8000/stock?limit=5&offset=0。 谁能帮我理解我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)