Rails RESTful API + поддержка клиентов, которые разрешают только GET / POST - возможно ли это? - PullRequest
2 голосов
/ 18 ноября 2010

Я публикую API для своего приложения на Rails, и я стараюсь быть настолько хорошим и RESTful, насколько это возможно, и в то же время реалистичным. Я знаю, что у Flash и некоторых других клиентов возникают проблемы при выполнении чего-либо, кроме GET и POST, но я все же хотел бы предложить более RESTful-интерфейс для клиентов, которые могут быть такими выразительными.

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

Есть ли (простой) способ сделать это с помощью маршрутизации Rails? Кто-нибудь еще делает что-то подобное?

1 Ответ

5 голосов
/ 18 ноября 2010

Да, клиент может указать заголовок X-Http-Method-Override. Если значение заголовка равно put, то rails направит запрос как PUT.

Существует также параметр _method, который теоретически должен работать, но в некоторых случаях он не работает (если вы добавите его в строку запроса POST-запроса, он не будет работать). Существует некоторое промежуточное программное обеспечение для стойки, которое исправляет эти случаи: https://github.com/baroquebobcat/rack-methodoverride-with-params

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...