Как создать API для моего приложения на Rails, чтобы несколько сайтов могли совместно использовать одну базу данных? - PullRequest
5 голосов
/ 02 июня 2011

У меня есть приложение Rails, которое сейчас довольно стандартно: серверная часть Heroku / PostgreSQL, пользователи переходят прямо на мой сайт для обновления данных, нет мобильного приложения или чего-либо еще. Мы собираемся начать лицензирование технологии для других компаний, чтобы различные версии интерфейса находились на company1.mywebsite.com, company2.mywebsite.com и т. Д., Где все эти интерфейсы совместно используют одну и ту же базу данных.

Я хочу получить совет о том, как это сделать. Создать ли отдельное приложение Rails для company1, company2 и т. Д. (С большим количеством избыточного кода), а затем настроить каждое из них с ключами API для запроса моего главного приложения, используя его маршруты RESTful?

Любые уроки, на которые можно указать мне, были бы также хороши.

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

Я рекомендую вам книгу Пола Дикса о сервисно-ориентированном проектировании с использованием Ruby и Rails. В нем много информации о том, какую систему вы хотите построить.

Чтобы ответить на ваш вопрос:

  • Построить сервер API. Он обслуживает JSON, например, интерфейс RESTful.

    api.mydomain/client1/users.json
    
  • Построить интерфейсный сервер. Он использует службу API - например, используя typhoeus - и обслуживает последние страницы. Он использует поддомен или доменное имя для идентификации разных клиентов.

    client1.mydomain/users
    
1 голос
/ 14 июля 2011

У нас есть похожая «платформа».

Что мы сделали:

  1. создание основного приложения API (REST + Push)
  2. создание основного плагинадля rails с общим кодом
  3. создайте отдельное приложение rails для каждого клиента, для которого есть весь специфичный для клиента код

Мы используем эту настройку уже 3 года, и я 'Я очень доволен этим.

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