Coder Social home page Coder Social logo

java-consumer-producer-resttemplate's Introduction

Приложение для демонстрации работы с API на Spring Boot, Hibernate, CriteriaAPI, Testcontainers, Docker, Swagger.

Приложение представляет собой простой API для управления продуктами, категориями и ревью на продукты. Ревью добавляет или убавляет средний рейтинг продукта при добавлении, удалении, а также изменении. Также реализована фильтрация продуктов по цене, рейтингу, категории и описанию с помощью Criteria API.

Подробную документацию и схемы API можно найти в Swagger.

Updated

  • Добавлены интеграционные тесты контроллеров с использованием Testcontainers.

При запуске тестов создается один контейнер с PostgreSQL и удаляется после завершения тестов, а также создается один контекст. Это реализовано с помощью EnablePostgresTestContainerContextCustomizerFactory который находится в конфиг папке

Для запуска тестов выполните следующую команду в папке supplier

Linux и MacOS:

./gradlew test

Windows:

gradlew.bat test

Или же вручную запустите тесты в Intellij IDEA.

Запуск приложения

С помощью docker-compose

Для запуска приложения с помощью docker-compose выполните следующую команду в корневом каталоге проекта:

docker compose up

Использование

API доступен по адресу http://localhost:8080. Вы можете использовать инструменты, такие как Postman или curl, для взаимодействия с конечными точками API.

Например, чтобы получить продукт по ID:

GET http://localhost:8080/api/products/1

Чтобы создать новый обзор для продукта:

POST http://localhost:8080/api/reviews/products/1 Content-Type: application/json

{
"rating": 4,
"comment": "Отличный продукт!",
"productId": 1
}

Реализация Criteria API для фильтрации продуктов.

Например, чтобы получить все продукты с ценой от 1000 до 2000 и рейтингом от 4 до 5:

Нужно выполнить запрос:

GET http://localhost:8080/api/products/filter?page=0&size=10&sort=desc&sortBy=price&maxPrice=500000&categoryId=1

Все параметры являются необязательными.

Список параметров

  • minPrice: Минимальная цена продукта.
  • maxPrice: Максимальная цена продукта.
  • minRating: Минимальный рейтинг продукта.
  • maxRating: Максимальный рейтинг продукта.
  • page: Номер страницы.
  • size: Количество элементов на странице.
  • sort: Поле для сортировки. Например, sort=price. Возможные значения: price, avarageRating.
  • sortBy: Направление сортировки. Возможные значения: asc, desc.
  • categoryId: ID категории продукта.
  • description: Поиск по описанию продукта.

Обратитесь к документации Swagger для получения более подробной информации о параметрах и ответах каждой конечной точки. 🚀

Consumer

Для демонстрации работы с API был создан простой клиент, который позволяет взаимодействовать с API с помощью RestTemplate.

Запуск приложения

Приложение запустится автоматически при запуске и выведет в логи результаты вызовов API.

docker compose up

java-consumer-producer-resttemplate's People

Contributors

wiezq avatar

Watchers

 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.