https://github.com/tatianasharova/storage
REST API для управления процессами на складе.
https://github.com/tatianasharova/storage
asynchronous docker docker-compose fastapi postgresql python sqlalchemy
Last synced: 3 months ago
JSON representation
REST API для управления процессами на складе.
- Host: GitHub
- URL: https://github.com/tatianasharova/storage
- Owner: TatianaSharova
- Created: 2024-10-28T05:38:49.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-20T09:21:49.000Z (over 1 year ago)
- Last Synced: 2025-01-06T17:47:33.625Z (over 1 year ago)
- Topics: asynchronous, docker, docker-compose, fastapi, postgresql, python, sqlalchemy
- Language: Python
- Homepage:
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# **_StorageAPI_**
RESTful API сервис для управления складом. Этот сервис предоставляет возможность добавлять в базу данных товары, находящие на складе. Потом пользователи могут делать заказы, состоящие из этих товаров. Если для заказа недостаточное количестов товаров на складе, сервис сообщит об этом. Есть возможность менять статус заказа (pending/sent/delivered).
Стек: python, FastAPI, Postgres, SQLAlchemy, Docker-compose, asyncio, SQLite, pytest.
**Как запустить проект:**
-----------
Клонировать репозиторий и перейти в него в командной строке:
```
git clone https://github.com/TatianaSharova/Storage.git
```
**_Запуск через Docker-compose:_**
Создайте файл env. и наполните своими данными:
```
PORT=8000
DB_USER= никнем юзера
DB_PASSWORD= пароль для бд
POSTGRES_PORT=5432
DB_NAME= название бд
```
Запустите проект:
```
docker compose up
```
**Возможности API:**
-----------
```
http://127.0.0.1:8000/products
```
1. Создание товара. POST
2. Просмотр всех товаров. GET
```
http://127.0.0.1:8000/products/id
```
1. Просмотр товара. GET
2. Удаление товара. DELETE
3. Изменение товара. PUT
```
http://127.0.0.1:8000/orders
```
1. Создание заказа. POST
2. Просмотр всех заказов. GET
```
http://127.0.0.1:8000/orders/id
```
1. Просмотр заказа. GET
```
http://127.0.0.1:8000/orders/id/status
```
1. Изменение статуса заказа. PATCH
**Тестирование:**
-----------
Для тестов создается отдельная асинхронная база данных Sqlite.
Для тестирования введите в командной строке:
```
pytest
```
**Документация:**
-----------
Документацию к API после запуска проекта можно посмотреть по адресам:
```
http://127.0.0.1:8000/docs
http://127.0.0.1:8000/redoc
```
### Автор
[Татьяна Шарова](https://github.com/TatianaSharova)