An open API service indexing awesome lists of open source software.

https://github.com/annatsepilova/goit-pythonweb-hw-08

homework python with web
https://github.com/annatsepilova/goit-pythonweb-hw-08

fastapi postgresql pydantic python sqlalchemy swagger

Last synced: about 2 months ago
JSON representation

homework python with web

Awesome Lists containing this project

README

          

## Завдання

Створити `REST API` для зберігання та управління контактами. `API` повинен бути побудований з використанням інфраструктури `FastAPI` та повинен використовувати `SQLAlchemy` для управління базою даних.

**Технічний опис завдання**

**1. Контакти**

Для зберігання контактів вашої системи необхідно організувати базу даних, яка буде містити всю необхідну інформацію.

Ця інформація повинна включати:

- Ім'я
- Прізвище
- Електронна адреса
- Номер телефону
- День народження
- Додаткові дані (необов'язково)

**2. API**

API, яке ви розробляєте, повинно підтримувати базові операції з даними. Нижче наведено список дій, які ваш API повинен мати можливість виконувати::

- Створити новий контакт
- Отримати список всіх контактів
- Отримати один контакт за ідентифікатором
- Оновити контакт, що існує
- Видалити контакт

**3. CRUD API**

На придачу до базового функціоналу `CRUD API` також повинен мати наступні функції:

- Контакти повинні бути доступні для пошуку за іменем, прізвищем чи адресою електронної пошти (`Query` параметри).
- `API` повинен мати змогу отримати список контактів з днями народження на найближчі 7 днів.

**Загальні вимоги до виконання завдання**

- Використання фреймворку `FastAPI` для створення `API`
- Використання `ORM SQLAlchemy` для роботи з базою даних
- В якості бази даних слід використовувати `PostgreSQL`.
- Підтримка `CRUD` операцій для контактів
- Підтримка зберігання дати народження контакту
- Надання `Swagger` документації для `REST API`
- Використання модуля перевірки валідності даних `Pydantic`