Code Monkey home page Code Monkey logo

assortmentmanagement's Introduction

AssortmentManagement

Back-end приложение, которое имеет RESTful HTTP методы выполняющие:

  1. Добавление товара
  2. Редактирование товара
  3. Удаление товара
  4. Просмотр всех существующих товаров по типу
  5. Просмотр товара по идентификатору

Сборка

Требование к установке:

  • Наличие JDK (версии 15 и выше)
  • Наличие IDE (Intellij IDEA, Eclipse и т.д.)

Необходимо клонировать репозиторий любым удобным способом, провести сборку c помощью maven: mvn package

Настройка

Для сохранения базы данных в памяти необходимо дополнить файл application.properties в строке url: spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_ON_EXIT=FALSE

Экплуатация

Скомпилированный файл jar запустить на целевом компьютере или сервере с JVM.

Функционал

Приложение позволяет обрабатывать rest http запросы:

Метод URL Действие
GET /products Возвращает список всех товаров в ассортименте
GET /products/{id} Возвращает товар с заданным id
GET /computers Возвращает список товаров, соответствующих типу компьютер
GET /screens Возвращает список товаров, соответствующих типу монитор
GET /laptops Возвращает список товаров, соответствующих типу ноутбук
GET /harddrives Возвращает список товаров, соответствующих типу жесткий диск
POST /computers Добавляет в бд запись о товаре компьютер
POST /screens Добавляет в бд запись о товаре монитор
POST /laptops Добавляет в бд запись о товаре ноутбук
POST /harddrives Добавляет в бд запись о товаре жесткий диск
PUT /computers/{id} Изменяет в бд запись о товаре компьютер с заданным id
PUT /screens/{id} Изменяет в бд запись о товаре монитор с заданным id
PUT /laptops/{id} Изменяет в бд запись о товаре ноутбук с заданным id
PUT /harddrives/{id} Изменяет в бд запись о товаре жесткий диск с заданным id
DELETE /harddrives/{id} Удаляет из бд запись о товаре с заданным id

Методы POST и PUT требуют в теле запроса объект соответствующего типа в формате JSON.

Добавление новых товаров

Классы типы товаров Computer, Laptop, Sreen, HardDrive унаследованы от родителя Product. Класс Product имеет стратегию наследования @Inheritance(strategy = InheritanceType.JOINED). Тем самым при работе приложения используется общая таблица для основных атрибутов товаров, тогда как для уникальных атрибутов будет создаваться дополнительная таблица для каждого типа товара, имеющая внешний ключ с ссылкой на общую таблицу. Для добавления нового типа товара необходимо:

  • Создать новый класс, унаследованный от класса Product
  • Указать аннотации @Entity @PrimaryKeyJoinColumn(name = "id")
  • Добавить конструктор без параметров, с указанием параметров, геттеры и сеттеры для полей
  • Дополнить интерфейс ProductService и его реализацию методами по добавлению, редактированию и просмотру объектов в бд
  • Добавить соответствующие методы в контроллер с указанием соответствующего маппинга

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.