2013-10-17 221 views
0

我想知道對於解決我的問題,但我沒有找到任何可以幫助我:(WSO2 REST - ESB - REST

這是我的問題: 我想調用遠程REST通過將其trought ESB來登錄數據庫客戶端調用Web服務。 我想一個POST查詢VAR傳遞給我的遠程WS過,例如名稱=值& 2 =值2!

我做一個代理服務,但我不知道如何將追加變量追加到IT。

我可以正確聯繫遠程ws與th是代理服務器,但我無法通過POST VAR,因爲我不知道該怎麼做。

我做的客戶端殼下面捲曲來電:我在代理服務

curl -k -i http://neanb330:8281/services/BioframeProxyService 

我有這個端點:

http://www.ebi.ac.uk/Tools/services/rest/emboss_matcher/run

但這項服務需要輸入兩個參數並推出我想爲客戶端編寫一個jobid。

我要製作REST API嗎? 我如何可以登錄客戶端調用db?

感謝

回答

1

這篇文章描述瞭如何處理WSO2 ESB中詳細實例休息的請求。 http://wso2.com/library/articles/2012/09/get-cup-coffee-wso2-way/

這是官方文件解釋其餘URL映射

http://docs.wso2.org/display/ESB470/Getting+Started+with+REST+APIs

+0

我剛纔看到的第一篇文章,但它有一個SOAP WS到後端解決方案。相反,我在後端有一個REST服務。我無法找到我如何把POST var放到我的beckend REST SERVICE! – Maforast

+0

使用REST_URL_POSTFIX屬性追加並構造查詢字符串,http://nuwanzone.blogspot.com/2012/07/invoke-rest-endpoint-from-soap-client.html,http://docs.wso2.org/display/ESB470/HTTP +傳輸+屬性,在這篇文章中它是通過類中介實現的,http://stackoverflow.com/questions/14523977/wso2-synapse-setting-a-url-parameter – Ragavan

+0

tnx for answer,REST_URL_POSTFIX幫助我以實現對BackEnd服務的響應。但是它並沒有在我的端點地址末尾放置正確的「jobid」,因爲我收到了NOT_FOUND響應,但是我預計完成了。我的API是: <資源的方法= 「GET」 URI模板= 「/ {}的jobId」> <屬性名= 「REST_URL_POSTFIX」 值=「獲取屬性( 'uri.var.jobId') 「 範圍=」 的axis2 「/> <地址URI =」 http://www.ebi.ac.uk/Tools/services/rest/emboss_matcher/status/「/> – Maforast

0

如果你的問題是如何,你可以使用curl那麼這樣的方式

curl -v --request POST -d '<Values><name1>ABC</name1><name2>Smith</name2></Values>' -H Content-Type:"text/xml" http://neanb330:8281/services/BioframeProxyService 
將數據發送到您的終點

然後你可以得到如下所示的值到ESB

<property name="name1" expression="//name1/text()"/> 
    <property name="name2" expression="//name2/text()"/> 
+0

喜TNX的答覆,我想送我的POST數據Api而不是捲曲,但我可以不這樣做。我想通過這個捲曲調用將我的參數傳遞給api:curl http://192.168.43.68:8281/run/asequence=FASTA/bsequence=FA STA/[email protected]然後在api中獲得這個: <地址URI =」 http://www.ebi.ac.uk/Tools/services/rest/emboss_matcher/run/「/> 但它不工作 – Maforast

0

我在休息休息場景中找到GET和POST的解決方案。

This for POST。我使用代理服務和捲曲電話:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" 
     name="BioframeProxyServiceRunBis" 
     transports="https,http" 
     statistics="disable" 
     trace="disable" 
     startOnLoad="true"> 
    <target> 
     <inSequence> 
     <log level="full"/> 
     <property name="ContentType" value="text/xml" scope="axis2" type="STRING"/> 
     <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://www.ebi.ac.uk/Tools/services/rest/emboss_matcher/run/"/> 
      </endpoint> 
     </send> 
     </inSequence> 
     <outSequence> 
     <send/> 
     </outSequence> 
    </target> 
    <description/> 
</proxy> 

curl -k -X POST https://neanb330:8244/services/BioframeProxyServiceRunBis -d asequence=FASTA -d bsequence=FASTA -d [email protected] -v 

我沒有找到保存REST調用到DB