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

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 для управления процессами на складе.

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)