我已经能够使用WSO2 ESB Drupal连接器检索节点数据(来自Drupal休息服务),但是在发布数据(创建节点)时,即使它使用其余客户端显示响应200,它也会失败。 Drupal权限已设置为具有读取和创建节点内容的匿名权限。
drupal应用程序和WSO2 ESB应用程序都在我的本地计算机上。
ESB URL 10.102.6.223:8280/services/drupal_createNode_jun21-333pm Drupal Rest API URL 10.102.6.223:8090/drupal/test1
通过其他客户发布的数据: { “的responseType”: “JSON”, “apiUrl”:“http://10.102.6.223:8090/drupal/test1”, “title”:“test title213pmv2”, “类型”:“文章” }
WSO2 ESB代理服务详情:
<?xml version="1.0" encoding="UTF-8"?>
<proxy name="drupal_createNode_jun21-333pm" startOnLoad="true"
trace="disable" transports="https http" xmlns="http://ws.apache.org/ns/synapse">
<target>
<inSequence onError="faultHandlerSeq">
<sequence key="faultHandlerSeq"/>
<property expression="json-eval($.responseType)"
name="responseType" scope="default" type="STRING"/>
<property expression="json-eval($.apiUrl)" name="apiUrl"
scope="default" type="STRING"/>
<property expression="json-eval($.title)" name="title"
scope="default" type="STRING"/>
<property expression="json-eval($.type)" name="type"
scope="default" type="STRING"/>
<drupal.init>
<apiUrl>{$ctx:apiUrl}</apiUrl>
<responseType>{$ctx:responseType}</responseType>
</drupal.init>
<drupal.createNode>
<type>{$ctx:type}</type>
<title>{$ctx:title}</title>
</drupal.createNode>
<respond/>
</inSequence>
<outSequence>
<send/>
</outSequence>
<faultSequence/>
</target>
</proxy>
非常感谢任何有关此工作的指示。感谢。
答案 0 :(得分:0)
我认为你错过了nodeBody,请使用以下格式并尝试
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="drupal_createNode" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
<target>
<inSequence onError="faultHandlerSeq">
<property name="responseType" expression="json-eval($.responseType)"/>
<property name="apiUrl" expression="json-eval($.apiUrl)"/>
<property name="userName" expression="json-eval($.userName)"/>
<property name="password" expression="json-eval($.password)"/>
<property name="title" expression="json-eval($.title)"/>
<property name="nodeBody" expression="json-eval($.nodeBody)"/>
<property name="customFields" expression="json-eval($.customFields)"/>
<property name="comment" expression="json-eval($.comment)"/>
<property name="type" expression="json-eval($.type)"/>
<drupal.init>
<responseType>{$ctx:responseType}</responseType>
<apiUrl>{$ctx:apiUrl}</apiUrl>
<userName>{$ctx:userName}</userName>
<password>{$ctx:password}</password>
</drupal.init>
<drupal.createNode>
<title>{$ctx:title}</title>
<nodeBody>{$ctx:nodeBody}</nodeBody>
<customFields>{$ctx:customFields}</customFields>
<comment>{$ctx:comment}</comment>
<type>{$ctx:type}</type>
</drupal.createNode>
<respond/>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
并使用以下格式的请求
{
"apiUrl": "http://172.22.217.40/restapi",
"userName": "samliyanage",
"password": "1qaz2wsx@",
"responseType": "json",
"title": "test title",
"nodeBody": {
"und": [
{
"value": "bodyss textreee",
"summary": "dffffffffffffff",
"format": "filtered_html",
"safe_value": "bodyss text",
"safe_summary": "text"
}
]
},
"customFields": {
"field_des": "tiger tiger"
},
"comment": "testing",
"type": "article"
}
有关详细信息here