Вот краткий обзор.
Подготовка базового приложения
Давайте создадим новое приложение 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 может отправлять сообщения?
- вам нужнознаете кто отправил сообщение (то есть имя пользователя)?
- вы хотите заблокировать одного пользователя или приложение для отправки сообщений в ваше веб-приложение?
Вы можете найти хороший обзор различных стратегий здесь .