В чем смысл и назначение входящей конечной точки в 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 поделятся дополнительной информацией о теме.