-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FastAPI Template: Основа #3
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Хороший первый шаг 👍
- PR большой, поэтому сложно дать полный вдумчивый ответ. Плюс я пока не запускал ничего. На этом шаге только просмотрел код.
- Я изменил структуру, убрал папку /backend, добавил некоторые технические файлы.
- Общее предложение использовать только прямые импорты. Я могу помочь с этим.
- Вопросы и предложения внутри.
- http клиент, базовые endpoint'ы, тесты итп. я бы делал в следующих PR. Этот и так уже большой.
src/fastapi/docker-compose.dev.yml
Outdated
container_name: fastapi | ||
image: fastapi_app | ||
restart: always | ||
entrypoint: ["/opt/app/entrypoint.sh"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
У тебя entrypoint
есть в Dockerfile
. Насколько я понимаю, тогда здесь это не нужно.
src/fastapi/docker-compose.dev.yml
Outdated
restart: always | ||
entrypoint: ["/opt/app/entrypoint.sh"] | ||
ports: | ||
- "${server_port}:5432" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здесь тоже, пожалуй, будет - "${server_port}:${server_port}"
.
src/fastapi/docker-compose.dev.yml
Outdated
networks: | ||
- api_network | ||
|
||
redis: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы убрал Redis :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
На данном этапе можно убрать, но он понадобится при построении API на этапе кеширования ответов
src/fastapi/docker-compose.dev.yml
Outdated
- backend_network | ||
- api_network | ||
|
||
nginx: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы сделал так. Мы с Сережей научились использовать шаблоны и передавать переменные и шаблоны для nginx (пример).
nginx:
image: nginx:1.25.1
restart: always
env_file:
- .env
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/templates:/etc/nginx/templates
ports:
- "${NGINX_PORT}:${NGINX_PORT}"
depends_on:
- api
src/fastapi/lib/db/postgres.py
Outdated
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine | ||
from sqlalchemy.orm import DeclarativeBase | ||
|
||
from lib.app import settings as lib_app_settings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
На мой взгляд можно просто app_settings
, т.е. import lib.app.settings as app_setttings
src/fastapi/nginx/conf.d/site.conf
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы лучше использовал шаблоны. Можно взять отсюда. nginx сам смотрит в /templates
файлы с расширением .template
, и использует их для настроек.
src/fastapi/nginx/nginx.conf
Outdated
proxy_set_header X-Real-IP $remote_addr; | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
|
||
include conf.d/site.conf; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
С .template
, насколько я понимаю, это строка не нужна.
src/fastapi_example/backend/main.py
Outdated
@@ -28,7 +28,7 @@ def close(self): | |||
del self._faker_client | |||
|
|||
|
|||
if __name__ == "__main__": | |||
if __name__ == "__main__.py": |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Подскажи зачем так?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вручную я этого не делал) аномалия, требующая анализа 🤔
src/fastapi/lib/db/postgres.py
Outdated
# Создаём движок | ||
# Настройки подключения к БД передаём из переменных окружения, которые заранее загружены в файл настроек | ||
|
||
database_dsn = ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Код "в корне" лучше "спрятать" в функцию, чтобы при импорте автоматически не происходило его исполнение.
6a21e41
to
79eed00
Compare
79eed00
to
0f1d74e
Compare
a105aca
to
cb61acf
Compare
cb61acf
to
82db9c0
Compare
Договорились замерджить эту версию. На неё отдельными PR реализовать задачи из #6 |
No description provided.