Я пытаюсь создать 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]
Пытаться
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
Других решений пока нет …