Возвращая JSON клиенту, получите запрос в ruby - PullRequest
0 голосов
/ 06 июля 2011

Я стараюсь изо всех сил, чтобы сделать полный сервис по рубину. Моя программа разбита на две части. Один из них - паук веб-службы, а другой - веб-приложение (еще не разработанное). Веб-приложение будет отправлять запросы сканеру, используя get post и обычные вещи.

Вот пример отправки запроса с использованием curl \

curl -d 'url=www.whatever.com&depth=10' http://127.0.0.1:8080/requests/new

отлично работает и, кажется, отправил запрос.

вот удаление

curl -x DELETE http://127.0.0.1:8080/requests/1      where 1 is id of request.

У меня вопрос, как мне сделать так, чтобы, если кто-то сделал запрос (а именно, мое веб-приложение), я мог заставить паука ответить в JSON

Я предполагаю, что мне нужно отформатировать переменную @request в JSON, а затем получить ответ, но я не знаю, как это сделать.

Также на заметку: смоделирован ли запрос curl таким же образом.

С другой стороны, обратите внимание: есть ли способ пометить код в переполнении стека вместо использования четырех пробелов.

Ответы [ 3 ]

0 голосов
/ 06 июля 2011

Ну, ответ обычно выводится в виде обычного HTML.

Итак, вы пишете представление, которое просто берет данные ответа и форматирует его в JSON.

Формат JSONэто очень просто.Итак, если мой ответ GET был списком из двух имен, например, name = 'joe' и name = 'bob'

, то JSON был бы: `{" name ":" joe "," name ":" bob"}

... и код вида будет выглядеть примерно так (псевдокод):

{
<% @names.each do |name| %>
  "name":"<%=h name %>",
<% end %>
}
0 голосов
/ 06 июля 2011

Если вы всегда хотите вернуть JSON независимо от того, откуда поступил запрос (браузер или паук), затем просто верните данные json с вашего контроллера:

render :json => @object

Если вы хотите поддержать паука (JSON) и традиционный веб-запрос из браузера (HTML), используйте обычный response_to (используя пример с Rails 2 ... я еще не знаю Rails 3):

respond_to do |format|
  format.js { render :json => @object }
  format.html
end

И убедитесь, что у вас есть файлы для просмотра в нужном месте для HTML.

0 голосов
/ 06 июля 2011

Вы можете отправлять свои параметры в Json следующим образом:

curl -d "{ url: \"www.whatever.com\", depth: \"10\"}" -H "Content-Type: application/json" -H "Accept: application/json" http://127.0.0.1:8080/requests/new

Для ответа вы должны определить свой контроллер для ответа в формате Json с response_to или response_with в Rails 3

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