| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Простой REST API для полнотекстового поиска документов.
Стек: FastAPI, SQLAlchemy 2.0 (asyncpg), PostgreSQL 16, Elasticsearch 8, Pydantic, Docker, Pytest.
Переименуйте .env.example в .env:
cp .env.example .envПоднимите контейнеры:
docker compose up -d --build(При первом запуске автоматически создадутся основная и тестовая базы данных).
Загрузите тестовые данные из data/posts.csv в базу и индекс:
docker compose exec api python -m scripts.load_dataПосле запуска интерактивная документация (Swagger) доступна по адресу: http://localhost:8000/docs
Файл OpenAPI (docs.json) можно сгенерировать командой:
docker compose exec api python -m scripts.export_docsТесты используют отдельную тестовую БД (search_db_test). Каждому тесту выделяется изолированная транзакция, которая откатывается после завершения, поэтому тесты работают быстро и не оставляют мусора.
docker compose exec api pytest -vПроект намеренно не перегружен слоистой архитектурой (Repository / Service / Router) во избежание оверинжиниринга. Логика работы двух эндпоинтов лаконично умещается в роутере
| Back | FazBrowse Home | New Git URL |