Данный сервис перенаправляет входящие запросы на указанные адреса, предварительно сформировав кастомизированный ответ.
Сервис описывается следующими сущностями:
-
Конфигурация - JSON-описание требуемого поведения сервиса. Конфигурация включает в себя множество адаптеров.
-
Адаптер - сервер, который обрабатывает входящие запросы по заданному порту. Адаптер включает в себя множество правил.
-
Правило - описание входящих и исходящих запросов.
Конфигурация ->0..*-> Адаптер ->0..*-> Правило
Все сущности прописываются в JSON-формате в файле config/config.json
.
Пример с комментариями:
{
"adapters": [
{
"name": "World SMS", // Название адаптера
"port": 8700, // Порт, по которому поднимается сервер для адаптера
"rules": [ // Список правил
{
"from": { // Входящий запрос
"path": "/dlr", // Путь, на который поступает входящий запрос
"http-method": "GET" // HTTP-метод входящего запроса
},
"to": { // Исходящий запрос
"url": "https://httpbin.org/post", // Адрес исходящего запроса
"http-method": "POST", // HTTP-метод исходящего запроса
"headers": [ // Хедеры исходящего запроса
"Content-Type: text/xml"
],
"data-file": "config/world-sms-dlr-to.xml" // Файл шаблона тела исходящего запроса
}
}
]
}
]
}
Для того, чтобы соединить входящий запрос с исходящим, используются шаблоны. Шаблоны содержат тело исходящего запроса с возможными подставновками. При отправке исходящего запроса подстановки заменяются реальными данными.
Список подстановок:
-
%BODY% - тело входящего запроса.
-
%QUERY[param1]% - GET-параметр входящего запроса с имененем param1.
-
%REGEX[from>([^<\\s]+)][1]% - регулярное выражение. Во вторых квадратных скобках содержится индекс группы. Поддерживаются только регулярные выражения Go: https://golang.org/pkg/regexp/syntax/.
Необходимо выполнить следующие команды:
make.bat
make
Запускать следует собранный исполняемый файл platform-service-bus(.exe)
.
-log <имя_файла>
- путь для файла логирования.