Golang Gorilla отправляет 301 для URL "//" - PullRequest
3 голосов
/ 07 мая 2019

У меня есть два маршрута, настроенных следующим образом

  • GET /api/store/{store_id}/books
  • GET /api/store/{store_id}

Когда поступает вызов API для первого URL-адреса без параметра {store_id}, например /api/store//books, Gorilla каким-то образом отправляет 301 /api/store/books клиенту. Это вызывает у меня проблемы, потому что оно точно соответствует второму маршруту. Горилла будет рассматривать books как параметр {store_id}.

Как настроить Gorilla для возврата 404 или другого кода ошибки при получении // в URL-адресах?

Я использую Gorilla v1.7.0.

1 Ответ

2 голосов
/ 07 мая 2019

По умолчанию mux будет очищать URL. Вы можете установить параметр router.SkipClean(true), чтобы избежать этого.

При значении true, если путь маршрута равен «/ path // to», он останется с двойной косой чертой. Это полезно, если у вас есть маршрут вроде: / fetch / http://xkcd.com/534/

...