2015-06-12 2 views
0

У меня есть приложение rails, моя цель - вызвать API-интерфейс приложения удаленных рельсов и вернуть результат этого API.
, например:
первого приложение имеет update() API, который делает некоторую обработку и создать хэш с именем data
Теперь я хочу, чтобы позвонить update() из 2-го применения и хочу data хэша в ответ.как получить ответ на запуск API на удаленном сервере rails из другого приложения rails

то, что я сейчас делаю, используется RestClient.get(url) URL-адрес 1-го приложения, добавленный с именем API.

Решает ли это мое требование или есть ли другой лучший способ сделать это?

ответ

0

Я нашел ответ на мой вопрос, я могу использовать render :test => data.to_json в мой удаленный API сервера, это хорошо разобрать и отправить data хэш в ответ на вызывающее приложение, это решает мою проблему.

0

В настоящее время я работаю над этим проектом, но я использую AJAX для получения данных с другого сайта. Вы должны заботиться о Cross Site Scripting, делая безопасные вызовы и важными, если ваш один сайт работает на https, тогда могут возникнуть проблемы, если ваше другое приложение работает на http.

2

Существует продукт под названием ActiveResource ... используется для монтажа в рельсы, но теперь это отдельный камень.

https://github.com/rails/activeresource

Мы используем его много на то, где я работаю.

Хотя у этого есть несколько причуд, он неплохо справляется с поведением ActiveRecord. Вы делаете Model.save, и он отправляет json в приложение modelscontroller#create или modelscontroller#update.

+0

ActiveResource - хороший вариант, но только если вы хотите запросить только запись, я хочу вызвать api, которая будет запрашивать записи локально и создать хэш для меня. , то я его принесу, это защитит меня от создания так много запросов к удаленному приложению. –

+0

Вы можете создавать коллекции с помощью ActiveResource. Он поддерживает все стандартные действия ... show/edit/update/new/create/delete, а также индекс для коллекционеров (несколько записей). И вы можете использовать ActiveResource GET для извлечения хэша любого конца API-файла ... он может быть истинным хешем, не обязательно должен основываться на модели. – SteveTurczyn

+0

ok попробует это тоже .. спасибо –

1

Для этой цели я бы использовал HTTParty, легкий HTTP-клиент ruby.

Просто позвоните

resp = HTTParty.get(url) 
resp.body # => displays body of the response 
JSON.parse(resp.body) # => parses JSON if you need to parse it 

Ссылка: https://github.com/jnunemaker/httparty

+1

или просто 'JSON.parse (open (url) .read)' – sircapsalot

+0

ваш ответ может быть использован при вызове приложения после того, как я получу ответ назад :) –

Смежные вопросы