IP Library Granted Patent US 11,194,640
Granted Patent B2
US 11,194,640 · App. 16/813,831 · Granted Dec 7, 2021

Validation framework for runtime connected API systems

Inventors: Keith D. Cramer (Pine Island, MN); Andrew R. Freed (Cary, NC); Tristan A. TeNyenhuis (West Islip, NY)
Assignee: International Business Machines Corporation
G06F9/547G06F16/953
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,194,640
App. No.
16/813,831
Granted
Dec 7, 2021
Kind
B2
Abstract

Provided is a validation framework for modelling possible failures that might occur when an orchestrated transaction calls external services to ensure that error handling and reporting is robust and well designed. The disclosed techniques ensure that no changes are necessary to either the code making a call or the services that might be called. The techniques are not limited to web servers and REST APIs as they may be used to test and validate any kind of system that employs well defined APIs. The claimed subject matter, or “validation framework” may be added to an existing API or created as a new module that acts as a proxy server in a non-micro service type of system. Although described with respect to a gateway-API service, the claimed subject matter is equally applicable to other systems that process orchestrated transactions.

Claims (76)

1. A method for managing communication in a distributed computing system, the method comprising:

retrieving, by one or more computer processors, return codes for a plurality of application programming interfaces (APIs), each API of the plurality of APIs corresponding to a corresponding service provider of a plurality service providers to generate a return code list;

generating, by one or more computer processors, an erroneous call for an API of the plurality of APIs;

transmitting, by one or more computer processors, the erroneous call to the API;

receiving, by one or more computer processors, a response to the erroneous call; and

comparing, by one or more computer processors, the response to an expected response in the return code list.

2. The method of claim 1 , further comprising:

intercepting, by one or more computer processors, a call from a client to the particular API; and

modifying, by one or more computer processors, the call to generate the erroneous call.

3. The method of claim 2 , further comprising:

generating, by one or more computer processors, an erroneous response to the API; and

determining, by one or more computer processors, whether or not the client handles the erroneous call appropriately.

4. The method of claim 2 , further comprising:

determining, by one or more computer processors, that the call would fail if transmitted to the API;

determining, by one or more computer processors, a failure code based on the return codes for the call and the API;

generating, by one or more computer processors, a response based upon the failure code; and

transmitting, by one or more computer processors, the response to the client rather than generating and transmitting the erroneous call to the API.

5. The method of claim 1 , the retrieving of error handling codes comprising:

querying, by one or more computer processors, each API of the plurality of APIs to generate the return code list; and

storing, by one or more computer processors, the return code list.

6. The method of claim 1 , the retrieving of return codes comprising:

querying, by one or more computer processors, a registration server to retrieve the return code list; and

storing, by one or more computer processors, the return code list.

7. The method of claim 1 , wherein the erroneous call is based upon any of a list of possible errors, the list selected from the group consisting of: erroneous payload data; erroneous code data; a maximum value greater than a permissible maximum value; and a minimum value greater than a permissible minimum value.

8. A computer program product for managing communication in a distributed computing system, the computer program product comprising:

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media, the program instructions comprising:

retrieve a return codes for a plurality of application programming interfaces (APIs), each API of the plurality of APIs corresponding to a corresponding service provider of a plurality service providers to generate a return code list;

generate an erroneous call for an API of the plurality of APIs;

transmit the erroneous call to the API;

receive a response to the erroneous call; and

compare the response to an expected response in the return code list.

9. The computer program product of claim 8 , further comprising program instructions stored on the one or more computer readable storage media, the program instructions to:

intercept a call from a client to the particular API; and

modify the call to generate the erroneous call.

10. The computer program product of claim 9 , further comprising program instructions stored on the one or more computer readable storage media, the program instructions to:

generate an erroneous response to the API; and

determine whether or not the client handles the erroneous call appropriately.

11. The computer program product of claim 9 , further comprising program instructions stored on the one or more computer readable storage media, the program instructions to:

determine that the call would fail if transmitted to the API;

determine a failure code based on the return codes for the call and the API;

generate a response based upon the failure code; and

transmit the response to the client rather than generating and transmitting the erroneous call to the API.

12. The computer program product of claim 8 , the retrieving of error handling codes comprising:

program instructions to query each API of the plurality of APIs to generate the return code list; and

program instructions to store the return code list.

13. The computer program product of claim 8 , the retrieving of return codes comprising:

program instructions to query a registration server to retrieve the return code list; and

program instructions to store the return code list.

14. The computer program product of claim 8 , wherein the erroneous call is based upon any of a list of possible errors, the list selected from the group consisting of: erroneous payload data; erroneous code data; a maximum value greater than a permissible maximum value; and a minimum value greater than a permissible minimum value.

15. A computer system for managing communication in a distributed computing system, the computer program product comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

retrieve a return codes for a plurality of application programming interfaces (APIs), each API of the plurality of APIs corresponding to a corresponding service provider of a plurality service providers to generate a return code list;

generate an erroneous call for an API of the plurality of APIs;

transmit the erroneous call to the API;

receive a response to the erroneous call; and

compare the response to an expected response in the return code list.

16. The computer system of claim 15 , further comprising program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

intercept a call from a client to the particular API; and

modify the call to generate the erroneous call.

17. The computer system of claim 16 , further comprising program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

generate an erroneous response to the API; and

determine whether or not the client handles the erroneous call appropriately.

18. The computer system of claim 16 , further comprising program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the program instructions comprising:

determine that the call would fail if transmitted to the API;

determine a failure code based on the return codes for the call and the API;

generate a response based upon the failure code; and

transmit the response to the client rather than generating and transmitting the erroneous call to the API.

19. The computer system of claim 15 , the retrieving of error handling codes comprising:

program instructions to query each API of the plurality of APIs to generate the return code list; and

program instructions to store the return code list.

20. The computer system of claim 15 , the retrieving of return codes comprising:

program instructions to query a registration server to retrieve the return code list; and

program instructions to store the return code list.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2020
From: CRAMER, KEITH D.; FREED, ANDREW R.; TENYENHUIS, TRISTAN A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 052061/0025 →
Continuity (2)
Continuation 16200813 · Nov 27, 2018
Related Publication 20200210258A1 · Jul 2, 2020