2012-03-30 5 views
4

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

ответ

-6

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

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

+0

Спасибо за ваши советы, Asankha. Я просто хочу использовать ESB в качестве шлюза для моих существующих служб RESTful. Я посмотрю на UltraESB. Может быть, это полезно для меня. – user1302779

+0

Hi, Asankha. У меня есть попытка для UltraESB. Это хороший продукт для меня и может быть подходящим для моего приложения. У меня просто вопрос. Это бесплатно и с открытым исходным кодом? Есть ли какое-либо ограничение, если я хочу использовать его в приложении Enterprise? Благодарю. – user1302779

4

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

+0

Спасибо, Тилини. Но выше 2 примеров просто показывают использование WSO2 ESB, получающих вызовы JSON REST. Как насчет обработки сообщений для бэкэнд-служб REST с сообщением JSON. Поддерживается ли это? – user1302779

+2

Да, это поддерживается. Но образец недоступен, но вы можете установить такую ​​среду, как указано в следующем потоке http://stackoverflow.com/questions/9605712/wso2-esb-4-0-3-and-json- в-Rest-служба – Ratha

7

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

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

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

< MessageBuilder CONTENTTYPE =" применение/х-WWW-форм-urlencoded»класс = "org.apache.synapse.commons.builders.XFormURLEncodedBuilder"/ >

, который позволяет экстракт Incomming 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> 
3

Последняя версия 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"/> 

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

Смежные вопросы