An endpoint is a specific destination for a message such as an address, WSDL, a failover group, a load-balance group etc. WSO2 API Manager supports a range of different endpoint types, allowing the API Gateway to connect with advanced types of backends.
|HTTP endpoint||A REST service endpoint based on a URI template.|
|Address endpoint||The direct URL of the service.|
|Failover Group endpoint||The endpoints that the service tries to connect to in case of a failure. This happens in a round robin manner.|
|Load Balance endpoint||The endpoints to which incoming requests are directed to in a round robin manner. They automatically handle fail-over as well.|
|Default endpoint||The default endpoint sends the message to the address specified in the To header.|
The system reads gateway endpoints from the
<APIM_HOME>/repository/conf/api-manager.xmlfile. When there are multiple gateway environments defined, it picks the gateway endpoint of the production environment. You can define both HTTP and HTTPS gateway endpoints as follows:
If both types of endpoints are defined, the HTTPS endpoint will be picked as the server endpoint.
Tip: When you define secure (HTTPS) endpoints, set the
<parameter name="HostnameVerifier">element to
<APIM_HOME>/repository/conf/axis2/axis2.xmlfile's HTTPS transport sender configuration:
If not, the server throws an exception.
Advanced Endpoint Configuration
WSO2 API Manager provides controlling the production and sandbox endpoints with Advanced Endpoint Configuration.
To configure your endpoints with this feature, go to the edit view of the API, navigate to the Implement tab and click the cogwheel icon next to the endpoint you want to configure.
The Advanced Endpoint Configuration dialog box appears as below.
Endpoint Configuration Description Endpoint Suspend State
If you want to configure the suspension of an Endpoint specifying error codes, maximum suspension time, suspension factors etc., you can use Endpoint Suspension State in the Advanced Endpoint Configuration.
Error Codes: Error codes in the drop down list which need to make the endpoint suspension. If the selected error codes are received from the endpoint, the endpoint will be suspended. Specify the transport error codes where the Endpoint Suspension should be triggered. You can select single or error codes here.
Initial duration : The time duration for which the endpoint will be suspended, when one or more suspend error codes are received from it for the first time.
When creating (or updating) Failover endpoints through the Publisher UI (in the Implement tab), you need to go into this configuration box of each endpoint and specify a set of Error Codes for the endpoint to fail over on and take off the Initial Duration by setting its value to -1.
Max duration : The maximum time duration for which the endpoint is suspended when suspend error codes are received from it.
Factor: The duration to suspend can vary from the first time suspension to the subsequent time. The factor value decides the suspense duration variance between subsequent suspensions.
Endpoint Timeout state
Configurations of retry, error codes and delays in terms of Endpoint timeout can be configured with Endpoint Timeout State in Advanced Endpoint Configuration.
Error Codes: A list of error codes. If these error codes are received from the endpoint, the request will be subjected to a timeout.
Retries Before Suspension: The number of re-tries in case of a timeout, caused by the above listed error codes.
Retry Delay: The delay between retries in milliseconds.
Duration and the Response Actions after a Connection Timeout can be configured here in Advanced Endpoint Configuration.
Action: Response Action to be performed after connection timeout. You can select from Never Timeout, Discard Message, Execute Fault Sequence. The default value is Execute Fault Sequence.
Duration: The time duration of Connection Timeout in milliseconds.
if you want to change the Endpoint Connection Timeout duration globally affecting all APIs, do the following.
<API-M_HOME>/repository/conf/synapse.propertiesfile. Change the value of the timeout as given below.
<ESB_HOME>/repository/conf/passthru-http.propertiesfile and change the socket timeout value.
Note that the socket timeout value should be greater than both the synapse global timeout and any endpoint timeouts given for your API.
- When creating (or updating) Failover endpoints through the Publisher UI (in the Implement tab), you need to go into the Advanced Options of each endpoint and specify the values for the Endpoint Suspension State by setting transport error codes for the endpoint to fail over on and take off the Initial Duration by setting its value to -1.
For more information about endpoints and how to add, edit or delete them, see the WSO2 ESB documentation.