Переадресация сайта с использованием Flask Python-API - PullRequest
0 голосов
/ 19 июня 2019

в нашем приложении у нас есть основной API-сервис, размещенный с использованием python и flask, который также обрабатывает аутентификацию, ssh и т. Д. Он встроен в Docker-контейнер.Кроме того, у нас есть приложение реагирования в другом контейнере док-станции, предоставляющее веб-сайт для конечного пользователя.

Что бы мы хотели иметь: доступ к веб-сайту должен быть только через наш основной API-интерфейс (через / home).в этом примере) по нескольким причинам.Таким образом, мы хотели бы, чтобы этот тип фляги служил статической папке, содержащей содержимое веб-сайта, в то время как эта папка изначально размещена другой службой.

Что мы пробовали: мы пытались реализовать простую архитектуру пересылки, которая просто пересылаетвсе запросы на

а) основной веб-сайт

б) все необходимые статические файлы

Это работает в том смысле, что основной веб-сайт, а также некоторые статические файлы (js, css) попадают в браузер пользователя, но ни один из узлов node_modules и т. д. не пересылается, и, следовательно, веб-сайт не отображается.

from api import app_api
from ..frontend_util import frontend_get_request

from flask import request


@app_api.route('/home', methods=['GET'])
def frontend_forward():
    return frontend_get_request('/')


@app_api.route('/manifest.json', methods=['GET'])
def frontend_manifest_forward():
    return frontend_get_request('/manifest.json')


@app_api.route('/static/<folder>/<path:filename>', methods=['GET'])
def frontend_static_forward(folder, filename):
    return frontend_get_request('/static/{}/{}'.format(folder, filename), headers=request.headers)

frontend_get_request () - это простая функция, которая выполняет запрос на получение.к интерфейсу, использующему пакет «запросы».

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

Best Kinetize

PS: Это может быть как-то связано? Прокси-доступ к другому веб-сервису с Flask

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