2010-07-29 4 views
0

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

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

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

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

ответ

0

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

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

С вызовом, происходящим через XMPP (bosh или direct) или Websockets, вам нужно будет сделать то же самое, потому что клиент будет разговаривать с промежуточным компонентом XMPP или ботом, который получает строфы, которые составляют запрос, собирать любое сохраненное состояние и затем передавать это на REST.

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

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

  • Нет связанных вопросов^_^