Что я могу использовать, чтобы приложение Android могло взаимодействовать с приложением rails - PullRequest
4 голосов
/ 28 ноября 2010

Я пытаюсь создать приложение, которое в основном позволяет пользователю на устройстве Android отправлять сообщение, которое мгновенно появляется в приложении rails.У кого-нибудь есть предложения, что бы я использовал для этого?

Ответы [ 3 ]

13 голосов
/ 28 ноября 2010

Вот краткий обзор.

Подготовка базового приложения

Давайте создадим новое приложение rails

$ rails new simple-message
$ cd simple-message/

Теперь мы собираемся создать ресурс RESTful с именем RESTful.Сообщение, которое будет управлять сообщениями, приходящими с ваших мобильных телефонов.

$ rails generate scaffold Message title:string content:text

Создайте таблицу, в которой будут содержаться сообщения:

$ rake db:migrate

Запустите связанный сервер и укажите браузеру http://0.0.0.0:3000/messages

Оттуда вы можете вручную создавать новые сообщения, которые будут отображаться в виде списка.

Ваш API уже существует

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

Если вы просматриваете http://0.0.0.0:3000/messages.xml, вы получите XML, содержащий все ваши сообщения.С curl:

$ curl http://localhost:3000/messages.xml
<?xml version="1.0" encoding="UTF-8"?>
<messages type="array">
  <message>
    <created-at type="datetime">2010-11-27T18:24:36Z</created-at>
    <title>Just a message</title>
    <updated-at type="datetime">2010-11-27T18:24:36Z</updated-at>
    <id type="integer">1</id>
    <content>With some content</content>
  </message>
</messages>

Пришло время добавить новое сообщение:

$ curl -X POST -H 'Content-type: text/xml' -d '<message><title>Hello</title><content>How are you</content></message>' http://0.0.0.0:3000/messages.xml
<?xml version="1.0" encoding="UTF-8"?>
<message>
  <created-at type="datetime">2010-11-27T18:40:44Z</created-at>
  <title>Hello</title>
  <updated-at type="datetime">2010-11-27T18:40:44Z</updated-at>
  <id type="integer">2</id>
  <content>How are you</content>
</message>

Ваш Android-клиент должен будет действовать как curl для добавления новых сообщений.

Защитаваше веб-приложение

Теперь вам нужна некоторая аутентификация, чтобы позволить только определенному пользователю действовать в качестве администратора и ограничить использование вашего API.Перед поиском различных способов реализации аутентификации в Rails:

  • должен ли ваш пользователь проходить аутентификацию перед отправкой сообщения?
  • должно ли веб-приложение принимать аутентификацию от других сервисов (например, Twitter, Facebook, Google, OAuth, OpenID ...) или против вашей собственной пользовательской базы данных?
  • открыт ли ваш API для других клиентов, или только ваш клиент Android может отправлять сообщения?
  • вам нужнознаете кто отправил сообщение (то есть имя пользователя)?
  • вы хотите заблокировать одного пользователя или приложение для отправки сообщений в ваше веб-приложение?

Вы можете найти хороший обзор различных стратегий здесь .

0 голосов
/ 28 ноября 2010

Если вы уважаете парадигмы REST, это просто, как POST к URL.

0 голосов
/ 28 ноября 2010

Лучший способ сделать это - создать API для вашего приложения rails. Затем вы можете использовать HTTP пост-запрос из вашего приложения для Android.

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