Переписанный URL вызывает ошибку 406

Я пытаюсь создать RESTful API и документ. Однако я, кажется, получаю странную ошибку, которую я не могу понять, как исправить.

Это работает:

curl --header "Accept: application/json" http://api.example.com/v1/method.php?key=test

Однако, если вы удалите расширение «.php» и запустите это:

curl --header "Accept: application/json" http://api.example.com/v1/method?key=test

Вы должны получить ошибку 406, если вы ее запустите. Теперь, если вы отбросите заголовок, который отправляет curl, оба запроса будут работать нормально. Однако инструмент документации (swagger), который я использую, требует этого.

Вот мое правило перезаписи (найдено Вот):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

0

Решение

Пытаться

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule method method.php [L]

Ваша операция не провалилась.

Ваш бэкэнд-сервис сообщает, что тип ответа, который он возвращает, не указан в HTTP-заголовке Accept-Type в вашем клиентском запросе.

Ref: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields

  • Узнайте ответ (тип контента), возвращаемый службой.
  • Укажите это (тип контента) в заголовке Accept вашего запроса.

http://en.wikipedia.org/wiki/HTTP_status_code -> 406

0

Другие решения

Других решений пока нет …