- Use below configuration as the IN extension.
<?xml version="1.0" encoding="UTF-8"?>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--TestPhoneApi:v1.0.0--IN">
<log level="custom">
<property name="TRACE" value="Global Mediation Extension"/>
</log>
<enrich>
<source clone="true" xpath="$body/jsonObject/node()"/>
<target type="body"/>
</enrich>
<enrich>
<source type="body" clone="true"/>
<target type="property" property="requestPayload"/>
</enrich>
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://ws.cdyne.com/PhoneVerify/query">
<soapenv:Body>
$1
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg evaluator="xml" expression="$ctx:requestPayload"/>
</args>
</payloadFactory>
</sequence>
- Use below configuration as the OUT extension.
admin-TestPhoneApi:v1.0.0-OUT
<?xml version="1.0" encoding="UTF-8"?> <sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--TestPhoneApi:v1.0.0--OUT"> <log level="custom"> <property name="TRACE" value="Global Mediation Extension"/> </log> <property name="messageType" value="application/json" scope="axis2"/> </sequence>
- Create a simple API to send the message to back-end. In here we used "http://ws.cdyne.com/phoneverify/phoneverify.asmx" as the endpoint.
<?xml version="1.0" encoding="UTF-8"?> <api xmlns="http://ws.apache.org/ns/synapse" name="admin--TestPhoneApi" context="/TestPhoneApi/1.0.0" version="1.0.0" version-type="context"> <resource methods="POST" url-mapping="/*" faultSequence="fault"> <inSequence> <log level="full"/> <property name="api.ut.backendRequestTime" expression="get-property('SYSTEM_TIME')"/> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <send> <endpoint name="admin--TestPhoneApi_APIproductionEndpoint_0"> <http format="soap12" uri-template="http://ws.cdyne.com/phoneverify/phoneverify.asmx"/> <property name="ENDPOINT_ADDRESS" value="http://ws.cdyne.com/phoneverify/phoneverify.asmx"/> </endpoint> </send> </then> <else> <sequence key="_sandbox_key_error_"/> </else> </filter> </inSequence> <outSequence> <class name="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtResponseHandler"/> <send/> </outSequence> </resource> <handlers> <handler class="org.wso2.carbon.apimgt.gateway.handlers.common.APIMgtLatencyStatsHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.CORSRequestHandler"> <property name="apiImplementationType" value="ENDPOINT"/> </handler> <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.throttling.ThrottleHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtUsageHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.analytics.APIMgtGoogleAnalyticsTrackingHandler"> <property name="configKey" value="gov:/apimgt/statistics/ga-config.xml"/> </handler> <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/> </handlers> </api>
- Request 1 with headers :
{"CheckPhoneNumber":{"PhoneNumber":"18006785432","LicenseKey":"0"}}
- Response for request 1:
{ "CheckPhoneNumberResponse": { "CheckPhoneNumberResult": { "Company": "Toll Free", "Valid": true, "Use": "Assigned to a code holder for normal use.", "State": "TF", "RC": null, "OCN": null, "OriginalNumber": 18006785432, "CleanNumber": 8006785432, "SwitchName": null, "SwitchType": null, "Country": "United States", "CLLI": null, "PrefixType": "Landline", "LATA": null, "sms": "Landline", "Email": null, "AssignDate": null, "TelecomCity": null, "TelecomCounty": null, "TelecomState": "TF", "TelecomZip": null, "TimeZone": null, "Lat": null, "Long": null, "Wireless": false } } }
- Request 2 with headers:
{"CheckPhoneNumbers":{"PhoneNumbers":{"string":"1"},"LicenseKey":"0"}}
- Response for request 2
{ "CheckPhoneNumbersResponse": { "CheckPhoneNumbersResult": { "PhoneReturn": { "Valid": false, "OriginalNumber": 1, "CleanNumber": null, "Wireless": false } } } }
No comments:
Post a Comment