В чем смысл и назначение входящей конечной точки в WSO2 ESB?

Я изучаю этот материал для сертификации 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+с + входящими + конечными точками

но я есть много сомнений, он говорит:

входящая конечная точка-это точка входа сообщения, которая может вводить сообщения непосредственно с транспортного уровня на посреднический уровень, без проходим через ось двигателя.

мой API-это сервис REST, почему он должен проходить через AXIS? (Из того, что я знаю, AXIS-это технология SOAP WS. Что я упускаю? И какая польза от того, чтобы не проходить через двигатель Axis?

другое сомнение: посредничество слой-это моя последовательность API, содержащая посредника, но что такое этот транспортный слой?

затем он также указывает:

из существующих транспортов поддерживает только транспорт HTTP multi-tenancy, это одно ограничение которое отжато с введение входящей архитектуры.

что это значит? Я не получаю этого ограничения.

в конце он также указывает:

другое ограничение когда это прибывает в обычным основанным Axis2 транспорты - это то, что транспорты не поддерживают динамику настойки. С входящими конечными точками можно создать входящие каналы обмена сообщениями динамически, а также есть встроенный координация кластера, а также поддержка нескольких арендаторов для всех транспорты.

что это значит?

мне кажется, что в этом уроке нет реальной необходимости (кроме демонстрационных целей) использовать входящую конечную точку. Не так ли?

в случае, если какая-то входящая конечная точка использует реальный сценарий?

1 ответов


Это не полный ответ. Это только мои догадки, с точки зрения разработчика программного обеспечения. Использование одного api лучше, чем использование нескольких разных api. Результаты меньше кода, меньше ошибок (код уже протестирован), больше возможностей поставляется в более короткие сроки. Исторически веб-службы предоставляют лучшие варианты, чем отдых, по крайней мере некоторое время назад. На самом деле wso строится вокруг axis engine, а затем пришло время ввести возможности отдыха. Звучит разумно просто трансформировать отдых запрос в тот же объект, что и axis engine, с запросом soap и использованием всего, что было сделано раньше. Недостатки, я предполагаю, намного медленнее, чем может работать чистая служба rest. Еще одна проблема-протокол soap и Axis engine имеют определенные утверждения и ограничения, ценные для rest.

например, если вы хотите, чтобы конечная точка rest принимала некоторую информацию и отвечала файлом, вам нужно настроить набор свойств synapse, таких как content-type, кодировать содержимое файла очень сложным способом. Все эта конфигурация пройдет через несколько уровней synapse engine для такой простой вещи.

Я надеюсь, разработчики wso поделятся дополнительной информацией о теме.