Skip to content

Тестовое задание на Backend Node разработку

License

Notifications You must be signed in to change notification settings

ruhose73/test-backend

Repository files navigation

Тестовое задание Backend Node

Установка и запуск

Сервера

  • Сервер API локальный: http://localhost:5000
  • Сервер локальный документации: http://localhost:5000/docs
  • Сервер API: http://51.250.11.190:5000
  • Сервер документации: http://51.250.11.190:5000/docs/

Что было сделано

  • Выполнены все обязательные требования
  • Проект развернут в Yandex Сloud
  • Документация SWAGGER
  • Сделана конфигурация для запуска в Docker контейнере
  • Во время разработки не использовась ORM
  • По возможности использовались DTO
  • Написаны прослойки для обработки ошибок и отправки статус кодов
  • Написана прослойка для проведения механизма авторизации

Комментарии

Сортировка и пагинация

Механизм сортировки и пагинации сделан на стороне базы данных

SELECT tags.id, tags.creator, tags.name, tags.sortorder, users.nickname, users.uid ` +
                `FROM tags LEFT OUTER JOIN users on tags.creator = users.uid` +
                ` ORDER BY (${inputParams.sortByOrder == true ? 
                'sortorder' : inputParams.sortByName == true ? 'name' : 'id'}) 
                LIMIT $1 OFFSET $2

В случае отсутствия какого либо параметра задаются значения по умолчанию

        const getTags = await TagService.allTags({ 
            sortByOrder: req.query.sortByOrder == '' ? true : false, 
            offset: req.query.offset ? req.query.offset : 0,
            sortByName: req.query.sortByName == '' ? true : false , 
            length: req.query.length ? req.query.length : 10 
        });

Миграция базы данных

Дамп базы данных сделан в двух форматах:

  • custom - формат PostgreSQL (через pg_restore)
  • plain - формат SQL (если хочется ручками)

Дампы хранятся в папке migration-pg в проекте

SWAGGER

Задокументированы все запросы данного API
Документация доступна после запуска проекта по адресу: http://51.250.11.190:5000/docs/
Либо же при локальном запуске по адресу:http://localhost:5000/docs/

About

Тестовое задание на Backend Node разработку

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages