Отображать данные в заголовки с помощью RoR - PullRequest
1 голос
/ 02 апреля 2012

Я работаю над небольшим REST API, написанным на RoR (3.2), который я буду использовать за экземпляром Varnish Cache.

Этот API будет вызываться cURL VMOD из Varnish для обработки ограничения количества пользователей.

Большая проблема в том, что Varnish плохо справляется с данными HTTP, за исключением заголовков.

Так что я хотел бы вернуть поля данных в виде заголовков HTTP (максимум 3 поля), но я не уверен, как сделать это надлежащим образом MVC.

Могут ли заголовки рассматриваться как допустимый вид или формат рендеринга?

Должны ли заголовки быть записаны в контроллере или в представлении? (зная, что возвращенные данные поступят от 2 моделей).

Также обратите внимание, что на следующем этапе мне придется обрабатывать распространенные выходные данные html и json.

Я знаю, что в любом случае это будет грязный хак, но поверьте мне: если попросить Varnish поработать над телом ответа, еще хуже над json или XML, это будет в 10 раз грязнее ...

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Придерживайтесь заголовков, если вы хотите легкое приложение без вызова конвейера просмотра.

Вызовы API используют заголовки для отправки информации клиенту (упрощает).

Заголовки должны быть записаны в контроллере до вызова представления, так как заголовки HTTP идут перед телом.

В настоящее время вы можете сделать render => :nothing для представлений, и как только вы захотите интегрировать json или xml, вы можете добавить действие response_to.

0 голосов
/ 02 апреля 2012

Я бы сказал, что это то, что вы можете установить в контроллере.Посмотрите на это и посмотрите, поможет ли это вам:

http://work.j832.com/2008/10/ruby-rails-render-and-content-type-http.html

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

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