Skip to content

ehpc/platform-service-bus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Как это работает

Данный сервис перенаправляет входящие запросы на указанные адреса, предварительно сформировав кастомизированный ответ.

Сервис описывается следующими сущностями:

  • Конфигурация - 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/.

Сборка проекта

Необходимо выполнить следующие команды:

Windows

make.bat

Linux

make

Запуск

Запускать следует собранный исполняемый файл platform-service-bus(.exe).

Аргументы командной строки

-log <имя_файла> - путь для файла логирования.

About

Transformation proxy in Go.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages