Прошло некоторое время, когда я создал приложение с интерфейсом Angularjs и внутренним интерфейсом API, так что простите меня, если это довольно глупый вопрос. Я хотел бы запустить серверную часть Python, которая обслуживает API. Каждая конечная точка должна начинаться с /api/. Теперь это приложение работает в папке api, это что-то вроде моей структуры папок:
-api/
-- controllers/
-- __init__.py
-config/
-public/
-- assets/
-- index.html
-server.py
Теперь я выясняю, как я могу запустить веб-сервер, который обращается к файлам из папки api, когда я использую конечную точку, которая начинается с /api, и каждая другая конечная точка должна получать доступ к моему приложению AngularJS, которое доступно из общей папки. Таким образом, я могу получить доступ к конечным точкам Python API из моего приложения AngularJS и при этом оставаться в безопасности, потому что мои исходные файлы Python недоступны из общей папки.
Итак, конечные точки AngularJS:
/home/login/logout
и т.п.
Конечные точки Python API: /api/user, /api/user/profile и т. д. (Каждая конечная точка, которая начинается с /api/.
Любые идеи? Я мог бы запустить два сервера на разных портах, но этого не должно быть. Я сделал что-то подобное с PHP, но никогда не делал этого с Python, и почему-то у меня сейчас головная боль.
Если бы кто-нибудь мог мне помочь, это было бы здорово.






Вы можете использовать nginx для развертывания этого проекта.
server {
listen 80;
listen [::]:80;
server_name xyz.com;
root /var/www/frontend/xyz-frontend/dist;
index index.php index.html index.htm index.nginx-debian.html;
# handles the api requests
location /api {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
proxy_pass http://unix:/var/www/services/xyz/api.sock;
}
# FOR ANGULAR BUILD
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.html /custom_50x.html;
}
Я использую Flask. Я предполагаю, что то, что я сделал с PHP, использовал PHP для API и позволил PHP отображать index.html для каждого URL-адреса, отличного от api. Общая папка содержала один файл PHP (index.php), который загружал (require) только файл Bootstrap.php, который находился в корневой папке. Возможно, для разработки я должен иметь возможность отображать index.html для каждого URL-адреса, отличного от api, по умолчанию, поэтому angular позаботится о конечных точках URL-адреса оттуда. Думаю, это должно сработать.
Добро пожаловать. Я думаю, вам следует использовать фреймворк для сервера python.