Пример простого CRUD API сервиса для работы с моделью пользователя.
- PostgreSQL
- Uvicorn
- Python 3.10
- FastAPI
- FastAPI CRUD Router
- Ormar
- Jose
Все общие настройки проекта хранятся в корневой директории в файле .env
в виде переменных окружения.
Для запуска и тестирования можно ничего не менять.
Таблица со значениями переменных:
Переменная окружения | Значение |
---|---|
POSTGRES_HOST | Адрес хоста базы данных |
POSTGRES_PORT | Порт базы данных |
POSTGRES_DB | Имя базы данных |
POSTGRES_USER | Пользователь базы данных |
POSTGRES_PASSWORD | Пароль пользователя базы данных |
SECRET_KEY | Секретный ключ, используемый для шифрования паролей и JWT токенов. |
По умолчанию переменная POSTGRES_HOST
= postgres
- название контейнера с базой данных в docker-compose.yml
.
Для сборки и запуска проекта Вам потребуется иметь установленный Docker.
Переходим в корневую директорию проекта, содержащую файлы Dockerfile
и docker-compose.yml
.
Запускаем сборку проекта:
docker-compose up
Docker автоматически запустит проект по адресу http://0.0.0.0:8000/
В проекта задействованно автоматическое генерирование документации для API энд-поинтов, используя Swagger и Redoc.
URL-адрес, по которому расположена документация API Swagger: http://0.0.0.0:8000/docs
URL-адрес, по которому расположена документация API Redoc: http://0.0.0.0:8000/redoc
URL-адрес, по которому расположен CRUD API модели User: http://0.0.0.0:8000/users
Изначально в базе данных нет ни одного пользователя.
Вы можете создать его, отправив POST запрос на API энд-поинт
http://0.0.0.0:8000/users/
После создания пользователя, при взаимодействии с API, в каждом запросе необходимо передавать JWT Token в Headers:
Authorization: Bearer here_your_token
Процесс получения JWT токена довольно простой.
Необходимо отправить POST запрос на URL-адрес http://0.0.0.0:8000/token/
В запросе необходимо передать username
и password
существующего пользователя.
Срок жизни токена - 60 минут.
=)