Skip to content

yoda007008/posts_api

Repository files navigation

Посты

Описание

Этот проект представляет собой API, разработанное на фреимворке FastAPI. Данные хранятся в реляционной базе данных PostgreSQL. Для запросов к базе данных я использовал SQLAlchemy, что в разы сократило мою работу над проектом. Для тестирования своего API, я использовал Pytest, потому что Unittest на мой взгляд довольно устаревшее решение для тестирования приложения.

Использованные технологии

  • FastAPI: Современный веб-фреймворк для создания API на Python. Быстрый и простой в использовании, с поддержкой асинхронного программирования.

  • PostgreSQL: Реляционная база данных, которая обеспечивает надежное и мощное хранилище для данных приложения.

  • SQLAlchemy: ORM (Object-Relational Mapping) библиотека для Python, которая упрощает работу с базами данных, позволяя разработчикам использовать Python-объекты вместо SQL-запросов.

  • Pytest: Бибилиотека для тестирования в Python, который позволяет писать простые и масштабируемые тесты для вашего приложения.

  • Docker и Docker Compose: Контейнеризация моего API, написанны два файла Dokerfile, в котором хранится образ проекта с запуском приложения, а также docker-compose.yaml, в котором есть образ базы данных PostgreSQL

Установка и запуск

Для запуска приложения в контейнере Docker, выполните следующие команды:

  1. Склонируйте репозиторий:

    git clone https://github.com/yoda007008/posts_api.git
  2. Примените миграции (если для Docker контейнера, то введите эту команду в bash контейнера, а не проекта):

    alembic upgrade head
  3. Сборка Docker образа:

    docker-compose build .
  4. Запуск контейнера:

    docker-compose up
  5. Остановка контейнера:

    docker-compose down

Теперь приложение будет доступно по адресу http://localhost:9000/docs. Если запускать через uvicorn app.main:app --reload, то по адресу http://localhost:8000/docs

About

Простенькое API с контейнеризацией Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published