4

WSO2 ESB をゲートウェイとして使用したい。バージョン 4.0.3 を使用しています。JSON メッセージを使用する既存の RESTful サービスがいくつかあります。ESB で REST API がサポートされるようになったことは知っています。しかし、WSO2 ESB REST から REST への解決策はまだ見つかりません。つまり、すべてのバックエンド サービスは JSON 形式の RESTful です。誰でも私を助けることができますか?

4

4 に答える 4

7

はい、REST -REST サービスをサポートしています。つまり、プロトコル スイッチングの下に分類されます。WSO2 ESB には REST API があり、受信する REST またはその他の形式を処理し、調停を行い、それらをバックエンドに渡すことができます (それはありません)。 'プロトコルが何であるかは関係ありません)

次のプロキシを使用すると、基本的に、使用する必要がある受信フォーム データにアクセスする必要がある場合に、受信 REST メッセージをバックエンド REST サービスに転送できます。

<messageFormatter contentType="application/x-www-form-urlencoded" class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>

<messageBuilder contentType="application/x-www-form-urlencoded" class="org.apache.synapse.commons.builders.XFormURLEncodedBuilder"/>

これにより、着信 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>
于 2012-05-26T15:35:09.240 に答える
4

WSO2 ESB は、REST 呼び出しの受信、処理、および仲介に優れたサポートを提供します。詳細については、 [1][2]のサンプルを参照してください。

于 2012-03-30T09:47:09.403 に答える
-6

特定の ESB の使用に固定されていない場合は、UltraESB を確認してください。すべての REST メソッドのサンプル [http://docs.adroitlogic.org/display/esb/Restful+Proxy+Services] があり、 JSONの優れたサポートも

免責事項 - 私は AdroitLogic の創設者兼 CTO です

于 2012-03-30T09:10:13.430 に答える