Skip to content

victoryacrasnova-star/students_api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Students API

О проекте:

Это учебный backend-проект для работы с данными о студентах. Приложение позволяет добавлять, хранить, изменять и удалять информацию о студентах, включая имя, контактные данные и оценки. Проект был создан для практики разработки REST API, работы с базой данных PostgreSQL и реализации CRUD-логики с использованием FastAPI.

Возможности:

API позволяет:

  • создавать студентов
  • получать список студентов
  • получать данные конкретного студента
  • добавлять контактные данные студента
  • добавлять оценки студенту
  • обновлять данные (PATCH)
  • удалять контакты и оценки

Стек:

  • Python
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Alembic
  • Pydantic

Что я отработала в проекте:

  • построение REST API
  • реализацию полноценного CRUD
  • работу с PostgreSQL
  • использование SQLAlchemy ORM
  • создание и применение миграций через Alembic
  • валидацию входящих данных через Pydantic
  • разделение проекта на routers

Структура проекта

students_api/ │ ├── alembic/ # миграции базы данных │ ├── app/ │ ├── database.py # подключение к базе данных │ ├── main.py # точка входа FastAPI │ ├── models.py # модели SQLAlchemy │ ├── schemas.py # Pydantic схемы │ │ │ └── routers/ │ ├── students.py │ ├── contacts.py │ └── grades.py │ └── README.md

Запуск проекта:

  1. Клонировать репозиторий: git clone <ссылка_на_репозиторий>
  2. Перейти в папку проекта: cd students_api
  3. Создать и активировать виртуальное окружение python -m venv .venv .venv\Scripts\activate
  4. Установить зависимости: pip install -r requirements.txt
  5. Применить миграции: alembic upgrade head
  6. Запустить сервер: uvicorn app.main:app --reload
  7. Открыть Swagger: http://127.0.0.1:8000/docs

endpoints:

Students

POST /students — создать студента
GET /students — список студентов
GET /students/{student_id} — информация о студенте
PATCH /students/{student_id} — обновить данные студента

Contacts

POST /students/{student_id}/contacts — добавить контакт
GET /students/{student_id}/contacts — получить контакты
PATCH /contacts/{contact_id} — обновить контакт
DELETE /contacts/{contact_id} — удалить контакт

Grades

POST /students/{student_id}/grades — добавить оценку
GET /students/{student_id}/grades — получить оценки
PATCH /grades/{grade_id} — обновить оценку
DELETE /grades/{grade_id} — удалить оценку

Полная документация API доступна в Swagger: http://127.0.0.1:8000/docs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors