When you publish a API using WSO2 API Manager it creates this kind of API configuration in built in service bus.
<api name="admin--Example_Rest_API" context="/exampleAPI" version="1.0.0" version-type="url"> <resource methods="POST GET DELETE OPTIONS PUT" url-mapping="/*"> <inSequence> <property name="POST_TO_URI" value="true" scope="axis2"/> <filter source="$ctx:AM_KEY_TYPE" regex="PRODUCTION"> <then> <send> <endpoint name="admin--Emojot_Rest_API_APIproductionEndpoint_0"> <http uri-template="http://localhost:3000"> <timeout> <duration>30000</duration> <responseAction>fault</responseAction> </timeout> <suspendOnFailure> <errorCodes>-1</errorCodes> <initialDuration>0</initialDuration> <progressionFactor>1.0</progressionFactor> <maximumDuration>0</maximumDuration> </suspendOnFailure> <markForSuspension> <errorCodes>-1</errorCodes> </markForSuspension> </http> </endpoint> </send> </then> <else> <sequence key="_sandbox_key_error_"/> </else> </filter> </inSequence> <outSequence> <send/> </outSequence> </resource> <handlers> <handler class="org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.throttling.APIThrottleHandler"> <property name="id" value="A"/> <property name="policyKey" value="gov:/apimgt/applicationdata/tiers.xml"/> </handler> <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler"/> <handler class="org.wso2.carbon.apimgt.usage.publisher.APIMgtGoogleAnalyticsTrackingHandler"/> <handler class="org.wso2.carbon.apimgt.gateway.handlers.ext.APIManagerExtensionHandler"/> </handlers> </api>If you need to allow cross origin access to this API you can dd these properties to the out sequence of the API.
<property name="Access-Control-Request-Headers" value="authorization,content-type" scope="transport"/> <property name="Access-Control-Allow-Headers" value="authorization,Access-Control-Allow-Origin,Content-Type" scope="transport"/> <property name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" scope="transport"/> <property name="Access-Control-Allow-Origin" value="IP address or wild car query(*)" scope="transport"/>Also you need to set the same headers at the backend API. But the IP address should be the API Managers API address. Because its calling the API.
No comments:
Post a Comment