GithubHelp home page GithubHelp logo

vue-test-task-api's Introduction

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.

vue-test-task-api's People

Contributors

carcade avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.