Restful API за неуспокоительными интерфейсами

Я пытаюсь найти соответствующие передовые практики/спецификации/литературу/и т.д. к общей проблеме использования restful API (скажем, стандартного приложения Rails) за неуспокоительным фасадом, таким как XMPP API или канал веб-сокетов.

Например, у меня есть спокойное приложение Rails, и я хочу предоставить доступный только для чтения асинхронный интерфейс. Это довольно простая вещь: приложение Rails отправляет данные в канал Redis pubsub, который, в свою очередь, используется из node.js и отправляется в канал веб-сокета (1). Теперь, как мне лучше всего сделать этот асинхронный API для чтения/записи? Я имею в виду, что клиент отправляет на сервер по каналу веб-сокетов то, что в основном будет представлять собой сериализованные HTTP-запросы или облегченные полезные данные в кодировке json, которые, в свою очередь, попадут в очередь Resque, а затем будут проанализированы из основного приложения, но я хотел бы знать, есть ли предыдущие работы/спецификации/архитектуры, на которые я могу опираться, или просто более элегантные подходы, которые я мог бы упустить из виду.

(1) Очевидно, что вы можете заменить «веб-сокеты» на «xmpp», и общая проблема — спокойные приложения за неуспокоительными интерфейсами по-прежнему будут применяться.

Заранее благодарю за любую помощь.


person mort    schedule 29.07.2010    source источник


Ответы (1)


Я не уверен, что на самом деле есть какая-то разница, кроме метода вызова/ответа.

Например, в веб-мире все вызовы интерфейса REST обычно выполняются из браузера, где любое отслеживание состояния выполняется на стороне сервера, как вы работаете с веб-клиентом. Таким образом, клиентский интерфейс обычно отправляет много данных (напрямую или косвенно через cookie), чтобы позволить серверу восстановить контекст вызова.

Когда вызов происходит через XMPP (фиктивный или прямой) или через веб-сокеты, вам нужно будет сделать то же самое, потому что клиент будет разговаривать с промежуточным звеном, компонентом XMPP или ботом, который получает строфы, составляющие запрос, собирая любое сохраненное состояние. а затем передать это ОТДЫХУ.

В самой простой форме бот/компонент XMPP будет просто принимать входящую строфу, переводить ее в вызов REST, выполнять этот вызов и затем упаковывать результат.

person bear    schedule 13.08.2010