2016-01-26 4 views
0

Вот мой установить:Как создать питон REST API, который поддерживает несколько баз данных

У меня есть приложение Django, которая имеет 2 пользователей: Боб и Джейк

И Боб и Джейк имеют определенную базу данных, связанных с их в целях безопасности. Другими словами, если Боб вошел в систему, то все остальные вызовы API, сделанные Бобом, должны быть направлены в его собственную базу данных (он не должен иметь доступ к Джейку) и наоборот.

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

Кроме того, я идеально хотел бы, чтобы этот API полностью был отделен от моего приложения django (он должен жить как совершенно отдельное приложение).

Мне интересно, есть ли у кого-нибудь предложения по установке этого типа API? Я открыт для использования в колбах, django и т. Д.

Спасибо за помощь!

ответ

2

Вы можете справиться с этим довольно легко с помощью Flask и SQLAlchemy. Создайте разные механизмы SQLAlchemy, указывающие на разные базы данных, создайте сеансы с этих движков и используйте их соответственно.

SQLAlchemy код установки:

bob_engine = create_engine('sqlite:////bob.db') 
BobSession = scoped_session(sessionmaker(autocommit=False, 
            autoflush=False, 
            bind=bob_engine)) 
jake_engine = create_engine('sqlite:////jake.db') 
JakeSession = scoped_session(sessionmaker(autocommit=False, 
            autoflush=False, 
            bind=jake_engine)) 

Колба конечной точка, используя колбовой логин current_user объекта:

@app.route('/foo') 
def foo(): 
    if current_user.name == 'Jake': 
     session = BobSession() 
    else: 
     session = JakeSession() 
    # run some query with the session... 
    session.close() 
Смежные вопросы