Skip to content

Backend

Процесс разработки новых методов/изменения существующего функционала

TDD:

  1. формулируем необходимые изменения в документации проекта
  2. вносим изменения в openapi.yml
  3. вносим изменения в примеры запросов и ответов
  4. вносим изменения в тесты методов/добавляем новые тесты
  5. вносим изменения в логику проекта
  6. проверяем что тесты проходят
  7. добавляем изменения в проект

Документация

Методы, которые поддерживает сервис описаны в /docs/openapi.yml. Эта документация содержит схемы запросов и ответов, а также примеры запросов и ответов.

Тестирование

В проекте используются автотесты. Каждый метод должен быть покрыт тестами, которые учитывают все сценарии использования данного метода.

При написании тестов используются те же примеры запросов и ответов, которые используются для документирования методов

Структура проекта

/internal/repository/sqlite/migrations

Миграции для БД

/index.ts

Содержит точки входа в приложение

/internal/app

Пакет app содержит логику для создания экземпляра приложения. При этом создаются экземпляры всех компонентов приложения (controller, repository). После этого происходит запуск приложения при котором запускаются необходимые компоненты приложения.

/internal/constants

Константы

/internal/controller

Содержит логику получения запросов и формирования ответов

/internal/model

Основные модели приложения (domains)

/internal/repository

Содержит логику получения данных из других источников

/internal/service

Бизнес логика приложения

Ориентировался на проекты:

backend-clean-arch

Форматы http запроса и ответа

Тело запроса:

json
{
	"meta": {},
	"data": {
		// Данные, необходимые для запроса
	}
}

Успешный ответ:

json
{
	"success": true,
	"data": {
		// Данные ответа
	}
}

Ошибка при обработке запроса:

json
{
	"success": false,
	"data": {},
	"error": {
		"code": "",
		"description": "",
	}
}