Учитывая базовую структуру проекта следующим образом:
/
app.py <-- Flask app startup and basic routing
models.py
schema.py <-- Contains Graphene/SQLAlchemy schema definitions for queries/mutations
Скажите, по моему app.py
У меня есть несколько основных настроек маршрута, например, так:
@app.route('/members/list', methods=['GET'])
def members():
# What should I do here?
Что такое "правильный"способ получения данных?Я вижу несколько разных подходов, но я не уверен, есть ли рекомендуемый способ, и я не могу найти простой ответ.Например:
return jsonify(session.query(MembersModel).all())
Я чувствую, что это, вероятно, правильный путь, но мне кажется странным, что это происходит прямо на маршруте (кажется, что мне не хватает некоторой архитектуры уровня обслуживания)) или что я не правильно использую schema.py
.Если бы я должен был пойти этим методом, это сидит в моем schema.py
?Или я должен был создать другой файл для сервисного поиска в другом месте?
Выполнение запроса GraphQL самостоятельно, как schema.execute('{ allMembers { ... } }')
через Графен (как видно здесь ) изатем анализ моего результата обратно в ответ.Это кажется ... неправильным, имея жестко закодированный GraphQL в моем коде, когда есть лучшая альтернатива в # 1.
У меня есть предыдущий опыт работы со Spring, и я всегда делал это с MVC в стиле controller <-> service <-> dao
, но я не уверен, что эквивалент Flask / Graphene / SQLAlchemy / GraphQL / SQLite,У меня есть это ноющее чувство, что я здесь упускаю очевидный ответ, поэтому, если кто-нибудь сможет направить меня к некоторым ресурсам или помочь, я буду признателен.
Спасибо!