API позволяет создавать, добавлять и редактировать учетные записи пользователей, а также администрировать пользователей и их роли. Используется фреймворк FastAPI c поддержкой кэширования в Redis, поддержкой jwt токенов посредством использования библиотеки Fastapi Auth JWT, хешированием паролей с помощью библиотеки passlib. В качестве ORM была использован библиотека SQLAlchemy совместно со средствами миграции Alembic и консольным управлением посредством использования библиотеки Typer.
- src - содержит исходный код приложения.
- main.py - входная точка приложения.
- cli.py - реализует интерфейс командной строки (CLI) для управления веб-приложением.
- api - модуль, в котором реализуется API. Другими словами, это модуль для предоставления http-интерфейса клиентским приложениям. Внутри модуля отсутствует какая-либо бизнес-логика, так как она не должна быть завязана на HTTP.
- core - содержит различные конфигурационные файлы.
- db - предоставляет объекты баз данных и провайдеры для внедрения зависимостей.
- models - содержит классы, описывающие бизнес-сущности.
- services - главное в сервисе. В этом модуле находится реализация всей бизнес-логики.
/api/v1/accounts/register - Регистрация нового пользователя.
/api/v1/accounts/login - Авторизация пользователя.
/api/v1/accounts/refresh - Выдача новой пары токенов, если access token устарел.
/api/v1/accounts/logout - Выход из аккаунта пользователя.
/api/v1/users - Вывод информации о всех пользователях системы.
Пагинация настраивается двумя параметрами - skip и limit.