Я придерживаюсь лабораторного курса WSO2 Enterprise Integrator Developer Advanced : https://wso2.com/training/enterprise-integrator-developer-advanced#request_training_enroll
, и у меня есть сомнения относительно различий между концепцией API и PROXY .
В этом лабораторном наборе есть пример, связанный с созданием пользовательского соединителя (вопрос не связан строго с темой соединителя).
В этом примере сначала создается и развертывается настраиваемый соединитель, затем создается и используется этот настраиваемый соединитель в этом прокси-сервере:
<?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>
Он работал нормально, и мой соединитель правильно вызывается.Но я спрашиваю, какова точная разница между ПРОКСИ, подобным этому, и API.
Я прочитал это: Разница между прокси-службой и службой API в wso2 Esb
Хорошо ... используя API, я могу определить несколько ресурсов, выполняющих различные операции CRUD, в то время как с прокси у меня есть одна точка входа.Дело в том, что с учетом этого, кажется, есть только одна разница в комфорте:
Мне нужно несколько операций CRUD?Я реализую API.Мне нужна одна изолированная операция?Я реализую прокси.
Но я думаю, что должны быть и другие ...
Я знаю, что API основаны на концепции REST .Я также читал, что прокси используется для предоставления веб-службы SOAP .
Это последнее утверждение мне не совсем понятно.Чтобы вызвать предыдущий PROXY (реализующий что-то вроде WS), я делаю:
curl -v -X POST -d "{"searchQuery":"rabbit"}" -H "Content-Type: application/json" http://localhost:8280//services/googlebooks_listVolume
Так что мне не кажется запрос SOAP , потому что я передаю JSON объект, содержащий мой параметр, который используется этим веб-сервисом.
Это также не чистый REST веб-сервис, но я думаю, что это определенно не SOAP service (что, насколько я знаю, использует WSDL XML-сообщение.
Итак, что я пропускаю?