Поддерживает ли WSO2 ESB REST to REST в формате JSON? - PullRequest
4 голосов
/ 30 марта 2012

Я хочу использовать WSO2 ESB в качестве шлюза. Я использую версию 4.0.3 У меня есть несколько существующих служб RESTful с сообщением JSON. Я знаю, что ESB теперь поддерживает REST API. Но я все еще не могу найти решение для WSO2 ESB REST to REST. Я имею в виду, что все серверные службы RESTful с форматом JSON. Кто-нибудь может мне помочь?

Ответы [ 4 ]

7 голосов
/ 26 мая 2012

Да, мы поддерживаем службы REST-REST, что означает его категоризацию при переключении протоколов. В WSO2 ESB имеется API REST, который позволяет обрабатывать входящий REST или любой другой формат и выполнять посредничество, а также передавать их на серверную часть. (не важно, какой протокол)

следующий прокси-сервер позволяет передавать входящее сообщение REST во внутреннюю службу REST. в основном, если вам нужен доступ к данным входящей формы, вам, возможно, придется использовать

, который позволяет вам извлекать входящие данные REST, отправлять информацию и осуществлять любое посредничество, как вы предпочитаете

REST TO REST VIA REST API                                                    
<api name="studentSecureAPI" context="/SecureStudentRequest">
    <resource methods="POST" uri-template="/student/{name}">
        <inSequence>
            <property name="REST_URI" expression="fn:substring($axis2:REST_URL_POSTFIX,16,fn:string-length($axis2:REST_URL_POSTFIX))"/>
            <property name="AGE" expression="//xformValues//age"/>
            <property name="STUDENT" expression="get-property('uri.var.name')"/>
            <property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"/>
            <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
            <property name="ContentType" value="application/x-www-form-urlencoded" scope="axis2" type="STRING"/>
            <property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
            <property name="REST_URL_POSTFIX" expression="$ctx:REST_URI" scope="axis2"/>
            <payloadFactory>
                <format>
                    <POST>
                        <age>$1</age>
                    </POST>
                </format>
                <args>
                    <arg expression="$ctx:AGE"/>
                </args>
            </payloadFactory>
            <send>
                <endpoint>
                    <address uri="http://localhost:9764/as/services/RestService"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </resource>

REST TO REST VIA SIMPLE PROXY  :                                                                
<proxy name="StudentRequestProxy" transports="https http" startOnLoad="true" trace="disable">
    <target>
        <inSequence>
            <property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"/>
            <property name="ContentType" value="text/xml" scope="axis2" type="STRING"/>
            <property xmlns:ns3="http://org.apache.synapse/xsd" name="Lang" expression="get-property('transport', 'Accept')" scope="default" type="STRING"/>
            <log level="custom">
                <property name="HTTP_METHOD IS###########" expression="$axis2:HTTP_METHOD"/>
            </log>
            <switch source="$axis2:HTTP_METHOD">
                <case regex="GET">
                    <property name="HTTP_METHOD" value="GET" scope="axis2" type="STRING"/>
                </case>
                <case regex="POST">
                    <property name="HTTP_METHOD" value="POST" scope="axis2" type="STRING"/>
                </case>
                <default/>
            </switch>
            <send>
                <endpoint>
                    <address uri="http://localhost:9764/as/services/RestService"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <send/>
        </outSequence>
    </target>
</proxy>
4 голосов
/ 30 марта 2012

WSO2 ESB обеспечивает отличную поддержку для приема, обработки и посредничества вызовов REST.Пожалуйста, найдите образец в [1] и [2] для получения дополнительной информации.

3 голосов
/ 02 марта 2014

Последняя версия ESB (4.8.1) отлично работает с вызовами JSON REST.попробуйте следующие payloadFactory и свойства посредников,

<payloadFactory media-type="json">
    <format>
       {
         "name":"$1",
         "age":$2
       }
    </format>
    <args>
       <arg evaluator="json" expression="$ctx:name"/>
       <arg evaluator="json" expression="$ctx:age"/>
    </args>
</payloadFactory>
<property name="messageType" value="application/json" scope="axis2"/>

Более подробную информацию можно найти по адресу здесь

0 голосов
/ 30 марта 2012

Если вы не используете какой-либо конкретный ESB, вы можете проверить UltraESB - здесь приведен пример для всех методов REST [http://docs.adroitlogic.org/display/esb/Restful+Proxy+Services] и очень хорошая поддержка JSON *

Отказ от ответственности - я основатель и технический директор AdroitLogic

...