Jakarta ee WSO2 API和代理之间有什么区别?

Jakarta ee WSO2 API和代理之间有什么区别?,jakarta-ee,wso2,wso2esb,wso2ei,Jakarta Ee,Wso2,Wso2esb,Wso2ei,我正在学习WSO2企业集成商开发人员高级课程的labkit: 我对API和代理的概念之间的区别表示怀疑 在这个labkit中,有一个与如何构建自定义连接器相关的示例,这个问题与连接器主题没有严格的关系 在本例中,它首先创建并部署自定义连接器,然后在此代理中创建并使用此自定义连接器: <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="goo

我正在学习WSO2企业集成商开发人员高级课程的labkit:

我对API和代理的概念之间的区别表示怀疑

在这个labkit中,有一个与如何构建自定义连接器相关的示例,这个问题与连接器主题没有严格的关系

在本例中,它首先创建并部署自定义连接器,然后在此代理中创建并使用此自定义连接器:

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
    name="googlebooks_listVolume"
    transports="https,http"
    statistics="disable"
    trace="disable"
    startOnLoad="true">
    <target>
        <inSequence>
            <property name="searchQuery"
expression="json-eval($.searchQuery)"/>
            <googlebooks.listVolume>
                <searchQuery>{$ctx:searchQuery}</searchQuery>
            </googlebooks.listVolume>
            <respond/>
        </inSequence>
        <outSequence>
            <log/>
            <send/>
        </outSequence>
    </target>
    <description/>
</proxy>
因此,在我看来,这似乎不是SOAP请求,因为我正在传递一个JSON对象,其中包含此web服务使用的参数

这也不是一个纯粹的REST web服务,但我认为从我所知,它肯定不是一个使用WSDL XML消息的SOAP服务


那么,我遗漏了什么呢?

主要区别与您提到的相同。代理服务基本上是一个具有自己的WSDL文件的SOAP服务。API被认为是RESTful服务,其资源映射到HTTP谓词

那么,如何使用上述给定的curl命令调用代理,以及它是如何工作的呢


原因是与curl请求一起发送的内容类型头。WSO2 EI或WSO2 ESB理解各种内容类型头,并将以本例中指定的JSON格式读取内容,然后将其传递给底层消息中介引擎。即使服务器将其作为JSON消息接受,但当消息传递给执行所有消息中介相关工作的中介引擎时,它将作为soap消息传递到下面。因此,实际上在中介引擎级别,代理服务仍将接收soap消息,但在传输级别,我们可以发送任何支持内容类型。此转换对调用代理服务的用户不可见。因此,这就是您可以向基于SOAP的代理服务发送JSON消息的原因。

Ah好的,那么基本上定义代理服务会发生什么,WSO2 ESB允许我以REST友好的方式调用它,但它会将我的REST请求转换为适当的SOAP请求,然后调用此SOAP WS?是吗?是的,它基本上将soap消息移交给下面的相关soap服务。
curl -v -X POST -d "{"searchQuery":"rabbit"}" -H "Content-Type: application/json" http://localhost:8280//services/googlebooks_listVolume