Я изучаю этот материал для сертификации WSO2 ESB:
https://wso2.com/training/enterprise-integrator-developer-fundamentals#request_training_enroll
В разделе «Загрузить лабораторный комплект» есть руководство о том, как настроить конечную точку входящего трафика. По сути, это просто объявление конечной точки входящего трафика в этом ранее реализованном учебном проекте:
https://docs.wso2.com/display/EI611/Sending+a+Simple+Message+to+a+Service
Я сделал это, и он отлично работает, в основном в моем проекте у меня есть этот REST API:
<?xml version="1.0" encoding="UTF-8"?>
<api context="/healthcare" name="HealthcareAPI" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/querydoctor/{category}">
<inSequence>
<log description="Request Log" level="custom">
<property name="message" value="Welcome to HealthcareService"/>
</log>
<send>
<endpoint key="QueryDoctorEP"/>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</resource>
</api>
который может быть напрямую вызван этим оператором:
curl -v http://localhost:8280/healthcare/querydoctor/surgery
Затем я добавил в проект эту конечную точку входящего трафика:
<?xml version="1.0" encoding="UTF-8"?>
<inboundEndpoint name="QueryDoctorInboundEndpoint" protocol="http" suspend="false" xmlns="http://ws.apache.org/ns/synapse">
<parameters>
<parameter name="inbound.http.port">8285</parameter>
<parameter name="dispatch.filter.pattern">/healthcare/querydoctor/.*</parameter>
</parameters>
</inboundEndpoint>
это означает, что я могу вызвать эту службу, используя также этот новый сопоставленный URL:
curl -v http://localhost:8285/healthcare/querydoctor/surgery
Я использую другой порт, потому что эта входящая конечная точка выполняет это сопоставление:
<parameter name="dispatch.filter.pattern">/healthcare/querydoctor/.*</parameter>
Я сомневаюсь: зачем мне использовать конечную точку входящего трафика вместо классического URL-адреса моего REST API? Каковы преимущества или возможные варианты использования?
Я попытался прочитать официальную страницу документации об этом типе конечной точки: https://docs.wso2.com/display/ESB490/Working+with+Inbound+Endpoints
но у меня много сомнений, там написано:
Входящая конечная точка - это точка входа сообщения, которая может вводить сообщения непосредственно с транспортного уровня на посреднический уровень, без прохождения через механизм Axis.
Мой API - это REST-сервис, почему он должен проходить через AXIS? (Насколько я знаю, AXIS - это технология SOAP WS.) Что мне не хватает? И в чем преимущество отказа от двигателя Axis?
Еще одно сомнение: уровень посредничества - это моя последовательность API, содержащая посредник, но что это за транспортный уровень?
Затем в нем также указывается:
Из существующих транспортов только транспорт HTTP поддерживает мультитенантность, это одно ограничение, которое преодолевается с введением входящей архитектуры.
Что это значит? Я не получаю этого ограничения.
В конце также указывается:
Еще одно ограничение, связанное с обычными транспортами на базе Axis2, заключается в том, что они не поддерживают динамические конфигурации. С входящими конечными точками можно динамически создавать входящие каналы обмена сообщениями, а также есть встроенная координация кластера, а также поддержка мультитенантности для всех транспортов.
Что это значит?
Мне кажется, что в этом руководстве нет реальной необходимости (за исключением демонстрационных целей) использовать входящую конечную точку. Не так ли?
В случае, каков сценарий реального использования входящей конечной точки?