Системная архитектура, объединяющая два приложения с API - PullRequest
1 голос
/ 05 сентября 2010

У меня сейчас проблема с реализацией, в основном она состоит из двух разных приложений rails.

Одно приложение rails (приложение A) просто предоставляет ответ в формате JSON, в данном случае это запись для данных о питании одного конкретного пищевого ингредиента.

Другое приложение (приложение B) также Rails предоставляет пользователям интерфейс для просмотра ингредиентов и сопоставления их с результатами поиска, предоставленными приложением A.

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

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

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Независимо от того, является ли приложение B внутренним или внешним, приложение A несет ответственность за раскрытие данных о питании.Это то, что вы не хотите дублировать.

Внутреннее приложение B должно использовать тот же механизм, что и внешние приложения для доступа к этой открытой функции.Думайте о приложении B как о первом клиенте, который использует API.

1 голос
/ 06 сентября 2010

Я бы создал новое приложение Rails 3, потому что Rails 3 тесно интегрирован с Rack.Стойка позволяет нам вставлять различные адаптеры в цепочку обработки запросов.Это может помочь нам различать запросы различного типа (стандартные запросы, запросы API).

Для приложения AI использовал бы что-нибудь легковесное, например, Sinatra (или даже мой собственный адаптер Rack, созданный с нуля).Это связано с тем, что API обычно не использует никаких дополнительных суперфункций Rails и его магии.

Так что, строго говоря, я создам только одно приложение (приложение B) на Rails 3, которое будетсвоего рода субмодуль для обработки API.Таким образом, они будут связаны друг с другом.

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