Search code examples
dockerwso2wso2-api-manager

Using WSO2 to call a local API


I ran a WSO2 service using docker and I followed all instructions according to the WSO2's document and everything worked fine including it's own Hello-world API. Next I have created my own Hello World API on my local machine on port :8082. I have set both Production Endpoint and Sanbox Endpoint to http://localhost:8082 but everytime I try to test the api it gives the following error:

    
Failed to fetch.
Possible Reasons:

CORS
Network Failure
URL scheme must be "http" or "https" for CORS request.

Update: I replaced localhost with my machine IP and used netcat on my local and telnet on the container to check it and it was okay. I don't know what is my next step.
Is there anything specific that I should consider for developing my Hello World that I'm missing?


Solution

  • I assume both your API GW and Backend API run with the same hostname, which creates SSL failure, so I recommend you create a new key store for your backend and export the key store as a certificate and import it into the trust store of API GW.

    keytool -keystore backend.jks -genkey -alias backend 
    keytool -export -keystore backend.jks -alias backend -file backend.crt
    keytool -import -file backend.crt -alias backend -keystore <APIM_HOME>/repository/resources/security/client-truststore.jks
    

    This enables the Gateway to trust the backend server (host) and enables you to communicate seamlessly.

    Thanks.