webMethods

webMethods

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

Receive Callback on API Gateway

  • 1.  Receive Callback on API Gateway

    Posted Tue July 09, 2024 10:13 AM

    Hello Everyone,

    I just Want your suggestion, can Software AG API Gateway version 10.11, receives callback from any API or service.


    #webMethods
    #API-Management
    #API-Gateway


  • 2.  RE: Receive Callback on API Gateway

    Posted Tue July 09, 2024 12:36 PM

    Can you elaborate a bit more on your overall scenario?

    Callbacks are often named that because of this:

    1. Some application (we’ll call it ABC) makes a call to some other application (we’ll call it XYZ). Within the payload there is a URL.
    2. The XYZ application uses the URL from ABC to make a “callback” – an async response.

    In this case, if the URL refers to an API GW-hosted endpoint, then it will work. The endpoint has no idea it is a “callback”. It’s just an endpoint.

    If your scenario differs from this, please share the details.


    #API-Management
    #webMethods
    #API-Gateway


  • 3.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 12:56 AM

    Dear @reamon I do have a similar question .

    Application calls an API through API Gateway. The payload of this API contains the business data & a callback url . The application expects the API server to callback that URL once the processing is complete. The callback also should go through the API Gateway. So in this case we need to modify the Callback URL sent by application & replace it with API Gateway URL.

    As per webMethods gateway there is function called callback processing. Can we use this feature for this usecase. I tried to implement this , however i could not find how does it actually work.

    Thanks


    #API-Gateway
    #API-Management
    #webMethods


  • 4.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 06:37 AM

    @mvsuhas API Gateway by default wrap the client request with callback URL with APIGateway and send to native to track the request in Gateway. So you do not have to modify the callback URL sent by application.

    All you have to do is to define the callback URL to your operation/resource by accessing the same from client request {$request.body.callback}
    Below are the API Gateway callback URL setup

    Process all API callback requests settings from API Gateway

    This enables API Gateway to accept all the API callback requests coming from the client and wraps these requests with its own URL before it routes these requests to the native API. This option is selected by default.

    When this setting is disabled, the request from the client reaches the native API, as is, without the API Gateway wrapping it with its own URL. So, when the native API sends out the callback request to the client it directly reaches the client and API Gateway is unable to track such events


    #API-Gateway
    #API-Management
    #webMethods


  • 5.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 07:48 AM

    Dear @DINESH_J Thanks for the inputs. I need some clarification on how does it work

    Let us assume that an
    API is being consumed by 2 different applications App X & App Y.
    Both are passing the callback URLs https://appX:443/callback & https://appY:443/callback.
    Now, Gateway replaces it two https://gateway:5443/callback
    So when , that callback is received on gateway, how does it determine the original call back url. Do we need to ask client to pass any particular identifier like co relation id?

    Thanks
    Suhas


    #API-Management
    #API-Gateway
    #webMethods


  • 6.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 12:50 PM

    @mvsuhas Let consider you have sum API with resource /processSUM which takes input from multiple consumer and your resource callback configuration as below

    Consumer 1 sends request with callback URL as below
    {
    “Number1”: 1,
    “Number2”: 19,
    “callback”: “https://hostnameport/callback/xyz/resultofCustomer1
    }

    Consumer 2 sends request with callback URL as below

    {
    “Number1”: 1,
    “Number2”: 20,
    “callback”: “https://hostnameport/callback/xyz/resultofCustomer2
    }

    When request lands at native service they will still get the values of original “callback” URL which sent by the consumer 1 & 2 respectively to native service to take further action. Also I do see there is no need for consumer to send request with correlation ID to differentiate the callback URL . I would suggest you to do simple POC with your business Use Case to see the outcome.


    #API-Management
    #webMethods
    #API-Gateway


  • 7.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 01:41 PM

    @DINESH_J

    In my case the server / native API uses the callback url that it receives in the request to send back the response

    Case 1 : Original Callback URL is sent to native API. In this case the call back does not come to gateway.

    Case 2 : Original URL is changed (replace with gateways host) so that the callback comes to gateway. In this case, How will gateway come to know to which client it should be sent ?

    Hope these diagrams help you to understand my case.


    #webMethods
    #API-Gateway
    #API-Management


  • 8.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 02:27 PM

    What is the purpose of case 2? Why should that call go through API GW? Sure, the callback is related to a request that came through GW but the async response does not need to. – API GW isn’t responsible for managing access to that external client.

    If you really want this to go through the GW, you’ll want to keep the original host somewhere in the modified URL as a parameter (encoded). And when the application makes the call to GW, the GW uses that parameter to forward the call.

    Lots of security things to be concerned about there, so be careful.

    [Edit] API GW supports this directly, so no need to do any custom wrapping/replacement of the callbackUrl (a conventional name defined by OpenAPI). Personally, I still wouldn’t do this. I understand that some may see value in tracking the callback but at this point, I don’t see a compelling case for it.


    #API-Gateway
    #API-Management
    #webMethods


  • 9.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 02:44 PM

    @reamon

    The requirement here is to track the call backs in gateway . The systems here are with in the internal network. I think below feature mentioned in the document is for the similar use case. Please correct me if i am wrong . But i could not understand how it works. It would be great if you can guide me on below setting and how it works

    3.Select Process all API callback requests.

    This enables API Gateway to accept all the API callback requests coming from the client and wraps these requests with its own URL before it routes these requests to the native API. This option is selected by default.

    When this setting is disabled, the request from the client reaches the native API, as is, without the API Gateway wrapping it with its own URL. So, when the native API sends out the callback request to the client it directly reaches the client and API Gateway is unable to track such events.


    #API-Gateway
    #API-Management
    #webMethods


  • 10.  RE: Receive Callback on API Gateway

    Posted Wed July 10, 2024 02:50 PM

    I think you assume url replacement as below:

    inbound
    callbackURL → apigatewayURL

    outbound
    apigatewayURL → callbackURL

    It should be rather like below:

    inbound
    callbackURL → apigatewayURL?callbackURL

    outbound
    apigatewayURL?callbackURL → callbackURL

    I hope this clarifies it for you.

    In documentations, it says wraps, not replaces. First diagram is replacement, second diagram is wrap visualized. Assume callbackurl is url encoded when passed down as parameter.


    #webMethods
    #API-Gateway
    #API-Management


  • 11.  RE: Receive Callback on API Gateway

    Posted Mon July 15, 2024 04:14 AM

    Thanks All for your inputs.

    I found API Gateway is replacing the URL with its own URL (Wrapped URL) . Gateway generates in own URL as below & then replaced it in the parameter that we specify

    For example,

    Call back URL sent by consumer in Request : client.com is for sale | www.oxley.com
    Callback URL wrapped by Gateway & sent to native API : https://gwhost:5543//https://client.com/callback


    #API-Management
    #webMethods
    #API-Gateway