- создать БД (скрипт
start_database.sh
) - положить таблицу для примера
- запустить сервис (скрипт
start_service.sh
) - отправлять запросы
-
GET
/get_data/{table_name}/limit/{limit}/offset/{offset}
-- получить limit строк из таблицы table_name с оффсетом offset -
GET
/get_item/{table_name}/{id}/{format}
-- получить строку с id из таблицы table_name в формате json (format='json') или xml (format='xml') -
POST
/insert_data
-- вставить в таблицу набор строк, данные передаются в формате json
{
"table_name": [
{"column": "value", ...}
], ...
}
- POST
/update_data
-- обновить данные, которые попадают под все условия из conditions, присвоить новые значения values, данные передаются в формате json
{
"table_name": {
"conditions": [{"column1": "value1", ... }, ...],
"values": [{"column2": "value2", ... }, ...]
},
...
}
Тесты для сервиса находятся в папке service/tests
и запускаются командой pytest
.
Тесты для обертки на базу данных находятся в папке pg_db/tests
и запускаются командой pytest
. Для их запуска необходим поднятый postgres (скрипт start_database.sh
).
- Обработка ошибок для юзера: сейчас есть только два варианта ответа, корректный и 500. Хотелось бы добавить обработку ошибок в запросах к БД и ошибок в структуре запроса пользователя (валидация параметров запроса)
- Защита от sql-инъекций
- Функциональные тесты на весь сервис (сейчас есть тесты на сервис с замоканной оберткой к БД и тесты на обертку к БД отдельно)