我想知道我的问题的解决方案,但我找不到任何可以帮助我的事情:(
这是我的问题: 我想通过传递ESB来记录客户端调用数据库来调用远程REST Web服务。 我想将POST查询var传递给我的远程ws,例如name = value& 2 =值2!
我提供代理服务,但我不知道如何将查询变量附加到IT。
我可以使用此代理正确联系远程ws,但我无法传递POST VAR,因为我不知道该怎么做。
我通过客户端shell进行以下curl调用:
curl -k -i http://neanb330:8281/services/BioframeProxyService
在我的代理服务中,我有这个端点:
http://www.ebi.ac.uk/Tools/services/rest/emboss_matcher/run
但是这项服务在输入中需要两个参数并输出一个我想按顺序为客户编写的jobid。
我是否要制作REST API? 我如何在db上记录客户端调用?
由于
答案 0 :(得分:1)
本文将通过示例详细介绍如何在WSO2 ESB中处理休息请求。 http://wso2.com/library/articles/2012/09/get-cup-coffee-wso2-way/
这是解释rest url mapping
的官方文档http://docs.wso2.org/display/ESB470/Getting+Started+with+REST+APIs
答案 1 :(得分: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()"/>
答案 2 :(得分:0)
我在静止场景中找到了GET和POST的解决方案。
这适用于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=maforast@gmail.com -v
我找不到保存休息呼叫DB
的解决方案