gpt4 book ai didi

jakarta-ee - WSO2 API 和代理有什么区别?

转载 作者:行者123 更新时间:2023-12-05 03:04:45 26 4
gpt4 key购买 nike

我正在学习 WSO2 Enterprise Integrator Developer Advanced 类(class)的 labkit:https://wso2.com/training/enterprise-integrator-developer-advanced#request_training_enroll

我对APIPROXY 的概念有什么区别有疑问。

在这个 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>

它工作正常,我的连接器被正确调用。但我想问的是,这样的 PROXY 和 API 之间的确切区别是什么。

我读到这个:Difference between Proxy Service and API Service in wso2 Esb

好的...使用 API 我可以定义执行不同 CRUD 操作的多个资源,同时使用代理我有一个入口点。事实是,鉴于此,舒适度似乎只有一个区别:

我需要多个CRUD操作?我实现了一个 API。我需要一个单独的隔离操作?我实现代理。

但我认为一定还有其他...

我知道 API 基于 REST 概念。我还读到 proxy 用于公开 SOAP 网络服务。

最后一个断言对我来说不是很清楚。要调用之前的 PROXY(实现类似 WS 的东西),我会这样做:

curl -v -X POST -d "{"searchQuery":"rabbit"}" -H "Content-Type: application/json" http://localhost:8280//services/googlebooks_listVolume

所以在我看来这不是一个 SOAP 请求,因为我正在传递一个 JSON 对象,其中包含此 Web 服务使用的我的参数。

这也不是纯粹的 REST 网络服务,但我认为它绝对不是 SOAP 服务(据我所知使用 WSDL XML 消息。

那么,我错过了什么?

最佳答案

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

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

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

关于jakarta-ee - WSO2 API 和代理有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52681195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com