Skip to content

loooj58/basic_service

Repository files navigation

Rest сервис

Как запускать:

  • создать БД (скрипт 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-инъекций
  • Функциональные тесты на весь сервис (сейчас есть тесты на сервис с замоканной оберткой к БД и тесты на обертку к БД отдельно)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published