Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

carcade/vue-test-task-api

Repository files navigation

Vue test task API

Описание

API сервер предоставляющий CRUD операции для сущностей: "категории", "детали", "теги".

Данные хранятся в оперативной памяти и при перезапуске сервера будут сброшены.

Настройка и запуск

  1. В корне проекта создать файл docker-compose.override.yml, скопировать в него содержимое из файла docker-compose.override.sample.yml.
  2. В поле CORS_ORIGIN указать адрес веб-приложения, с которого будет происходить обращение к серверу.
  3. Из корня проекта выполнить команду docker-compose up -d
  4. API сервер будет доступен по адресу http://localhost:8080

API

Модели

Поля, у которых в названии присутствует знак вопроса, являются опциональными (пример: parentId?: string;).

Category

{
    id: string;
    title: string;
    description: string;
    parentId?: string;
}

NewCategory

{
    title: string;
    description: string;
    parentId?: string;
}

UpdateCategory

{
    title: string;
    description: string;
    parentId?: string;
}

CategoryTreeItem

{
    record: Category;
    children: CategoryTreeItem[];
}

Part

{
    id: string;
    name: string;
    code: string;
    description?: string;
    parentId?: string;
}

NewPart

{
    name: string;
    code: string;
    description?: string;
    parentId?: string;
}

UpdatePart

{
    name: string;
    code: string;
    description?: string;
    parentId?: string;
}

PartTreeItem

{
    record: Part;
    children: PartTreeItem[];
}

Tag

{
    id: string;
    name: string;
    active: boolean;
    parentId?: string;
}

NewTag

{
    name: string;
    active: boolean;
    parentId?: string;
}

UpdateTag

{
    name: string;
    active: boolean;
    parentId?: string;
}

TagTreeItem

{
    record: Tag;
    children: TagTreeItem[];
}

Error

{
    message: string;
}

Сервисы

GET /categories

Возвращает массив CategoryTreeItem

POST /categories

Создает новую категорию.

На вход принимает объект NewCategory.

Возвращает объект Category.

PUT /categories/{id}

Обновляет существующую категорию.

На вход принимает объект UpdateCategory.

Возвращает объект Category.

URL параметры:

{id} - идентификатор обновляемой категории

DELETE /categories/{id}

Удаляет категорию

URL параметры:

{id} - идентификатор удаляемой категории

GET /parts

Возвращает массив PartTreeItem

POST /parts

Создает новую деталь.

На вход принимает объект NewPart.

Возвращает объект Part.

PUT /parts/{id}

Обновляет существующую деталь.

На вход принимает объект UpdatePart.

Возвращает объект Part.

URL параметры:

{id} - идентификатор обновляемой детали

DELETE /parts/{id}

Удаляет деталь

URL параметры:

{id} - идентификатор удаляемой деталь

GET /tags

Возвращает массив TagTreeItem

POST /tags

Создает новый тег.

На вход принимает объект NewTag.

Возвращает объект Tag.

PUT /tags/{id}

Обновляет существующий тег.

На вход принимает объект UpdateTag.

Возвращает объект Tag.

URL параметры:

{id} - идентификатор обновляемого тега

DELETE /tags/{id}

Удаляет тег

URL параметры:

{id} - идентификатор удаляемого тега

Ошибки

HTTP статусы ответов:

  • 200 - успешный запрос GET/POST/PUT
  • 201 - успешный запрос DELETE
  • 400 - ошибка запроса POST/PUT (неверные входные данные)
  • 404 - ошибка запроса GET/PUT/DELETE (модель не найдена)
  • 500 - внутренняя ошибка сервера

При возникновении ошибок (статусы 400/404/500), в ответ на запрос будет возвращен объект Error.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published