【发布时间】:2019-05-07 23:01:01
【问题描述】:
我有两条路线配置如下
-
GET /api/store/{store_id}/books GET /api/store/{store_id}
当第一个没有{store_id} 参数的URL 调用API 时,比如/api/store//books,Gorilla 会以某种方式向客户端发送301 /api/store/books。这引起了我的问题,因为它实际上匹配了第二条路线。 Gorilla 会将books 视为{store_id} 参数。
如何配置 Gorilla 在 URL 中接收 // 时返回 404 或其他错误代码?
我正在使用 Gorilla v1.7.0。
【问题讨论】:
-
据我所知 go 用 / 在 url 中替换 //,所以你不能有一个空的 store_id
-
如果你知道
store_id的模式,你可以添加它的正则表达式。例如,如果它只包含数字,那么您可以将路径更改为/api/store/{store_id:\d+}