Creating Mock APIs. Spring SOAP Web Services.

Ссылка на полную версию проекта на 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

Releated Post