WSO2 ESB中入站端点的含义和用途是什么?

And*_*ili 8 integration wso2 java-ee wso2esb wso2-enterprise-integrator

我正在研究这个材料用于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>
Run Code Online (Sandbox Code Playgroud)

可以通过以下声明直接调用:

curl -v http://localhost:8280/healthcare/querydoctor/surgery
Run Code Online (Sandbox Code Playgroud)

然后我将此入站端点添加到项目中:

<?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>
Run Code Online (Sandbox Code Playgroud)

这意味着我也可以使用这个新的映射URL调用此服务:

curl -v http://localhost:8285/healthcare/querydoctor/surgery
Run Code Online (Sandbox Code Playgroud)

我正在使用另一个端口,因为此入站端点正在执行此映射:

<parameter name="dispatch.filter.pattern">/healthcare/querydoctor/.*</parameter>
Run Code Online (Sandbox Code Playgroud)

我的疑问是:为什么我要使用入站端点而不是我的REST API的经典URL?有什么好处或可能的用例?

我尝试阅读有关此端点类型的官方文档页面:https: //docs.wso2.com/display/ESB490/Working+with+Inbound+Endpoints

但我有很多疑惑,它说:

入站端点是一个消息入口点,可以将消息直接从传输层注入到中介层,而无需通过Axis引擎.

我的API是REST服务,为什么要通过AXIS?(据我所知,AXIS是一种SOAP WS技术.)我缺少什么?不通过Axis引擎有什么好处?

另一个疑问是:中介层是我的API序列,包含中介但这个传输层是什么?

然后它还指定:

在现有传输中,只有HTTP传输支持多租户,这是引入入站架构时克服的一个限制.

这是什么意思?我没有得到这个限制.

最后它还指定:

传统的基于Axis2的传输的另一个限制是传输不支持动态配置.使用入站端点,可以动态创建入站消息传递通道,还有内置的群集协调以及对所有传输的多租户支持.

这是什么意思?

在我看来,在本教程中,没有真正的需要(除了演示目的)使用入站端点.不是吗?

如果某些入站端点使用真实案例场景?

sim*_*mar 1

这不是一个完整的答案。这只是我从软件开发人员角度的猜测。使用单个 api 比使用多个不同的 api 更好。结果是更少的代码、更少的错误(代码已经经过测试)、在更短的时间内交付更多的功能。从历史上看,网络服务提供了比休息更好的选择,至少在一段时间内是这样。实际上,wso 是围绕轴引擎构建的,然后是时候引入休息功能了。将剩余请求转换为与轴引擎处理肥皂请求相同的对象并使用之前所做的所有内容听起来很合理。我认为缺点是比纯粹的休息服务慢得多。另一个问题是肥皂协议和轴引擎有一定的断言和限制,对于休息很有价值。

例如,如果您希望使休息端点接受一些信息并以文件响应,您必须配置一组突触属性,例如内容类型,以非常棘手的方式编码文件内容。对于如此简单的事情,所有这些配置都会经过几层突触引擎。

我希望 wso 开发者能够分享更多有关该主题的信息。