
Ссылка на полную версию проекта на GitHub:
Github MockSoapRestProject
Ссылка на версию Spring MVC / Gradle:
Github MockSoapRestGradle
Ранее уже описывал создание заглушки для модульных REST API тестов с помощью инструментов Spring Web Services. Тут. Встретилась подобная необходимость, только с разницей в том, что заглушка будет работать как SOAP сервис, а управление хотелось бы реализовать на REST запросах и подключить Swagger для возможности использования – управления заглушкой как при ручном тестировании, так и при запуске авто тестов.
Немного документации:
Standards.REST
Simple Object Access Protocol (SOAP)
Задание:
Создать заглушку SAOP API сервиса Countrycode. Используя Spring Boot написать REST API Web Service для управления и SOAP API для ответов сервиса заглушки. Подключить документацию Swagger. На выходе получить готовый артефакт в виде war файла для возможности деплоя приложения.
Web service и WSDL, пока рабочий и бесплатный. SOAP Web service
Использовал:
Spring Boot | SOAP API | API RESTFull | JAXB | Swagger2 |
По традиции создаем maven проект и добавим необходимых зависимовстей в pom.xml. Также удобен вариант с использованием сервиса от Spring initializr.
Структура проекта:
ru.gotoqa.mock.configuration – Каталог содержит классы конфигурации Swagger и Spring Bean
ru.gotoqa.mock.core – Логика работы заглушки, создание и работа фильтров и настройка ответов
ru.gotoqa.mock.endpoint – Точки вызова управления заглушкой REST + mock ответы SOAP
ru.gotoqa.mock.entity – Каталог для десирилизации сущностей POJO обьектов для json / xml (автогенерация библиотека – maven-jaxb2-plugin)
resources.messages – Примеры запросов / ответов сервиса
resources.static – Стартовая демо – html страница (каталог парситься Spring Boot по умолчанию)
resources.wsdl – Файл с wsdl сервиса (Web Service Definition Language)
application.properties – Файл конфигурации для Spring Boot
Подробно описал генерацию классов по WSDL в статье ранее: ТУТ
Условная задача. Мокировать ответ запросов: CountryCurrency и CapitalCity
Swagger документация и управления заглушкой доступно по адресу: http://127.0.0.1:9091/swagger-ui.html
Принцип работы:
1. Задаем правило запросом: /filter/capitalCity/createRule
2. Вызываем сервис CapitalCity по адресу: http://127.0.0.1:9091/mock-soap
Также можно посмотреть все логированные обращения к сервису: /filter/capitalCity/showCapitalCityRequestStorage
Запуск из терминала: mvn spring-boot:run
Ссылка на полную версию проекта на GitHub:
Github MockSoapRestProject
Ссылка на версию Spring MVC / Gradle:
Github MockSoapRestGradle