IP Library Granted Patent US 11,698,825
Granted Patent B2
US 11,698,825 · App. 17/194,982 · Granted Jul 11, 2023

Application programming interface compatibility

Inventors: Andrew D. Mackenzie (Barcelona, ES); Eric Wittmann (Hartford, CT)
Assignee: Red Hat, Inc.
G06F9/547H04L67/133
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,698,825
App. No.
17/194,982
Granted
Jul 11, 2023
Kind
B2
Abstract

A system, comprising a memory and a processor, where the processor is in communication with the memory, is configured to receive a request to determine a compatibility of a first version of an application programming interface (API) with a second version of the API. Next, a model of the first version of the API and a model of the second version of the API is retrieved. Each of the models is parsed to determine a first set of functionality of the first version of the API and a second set of functionality of the second version of the API. The first set of functionality is mapped to the second set of functionality to determine differences between the first set of functionality and the second set of functionality. The compatibility of the first version of the API with the second version of the API is determined based on the differences.

Claims (45)

1. A system, comprising:

a memory; and

a processor in communication with the memory, wherein the processor is configured to:

receive a request to determine a compatibility of a first version of an application programming interface (API) with a second version of the API;

retrieve a model of the first version of the API and a model of the second version of the API;

parse each of the models to determine a first set of functionality of the first version of the API and a second set of functionality of the second version of the API;

map the first set of functionality to the second set of functionality to determine differences between the first set of functionality and the second set of functionality; and

determine the compatibility of the first version of the API with the second version of the API based on the differences;

modify the second version of the API responsive to determining that the first version of the API and the second version of the API are incompatible, wherein modifying the second version of the API comprises:

retrieving an installation package of the first version of the API; and

executing the installation package to transform the second version of the API to the first version of the API.

2. The system of claim 1 , wherein the request includes a required set of functionality, wherein the required set of functionality is a subset of the second set of functionality.

3. The system of claim 2 , wherein determining the compatibility includes verifying inclusion of the required set of functionality in the first set of functionality.

4. The system of claim 1 , wherein each model is retrieved from a server storing a plurality of versions of the API and associated models within a database.

5. The system of claim 1 , wherein the model of the second version of the API is retrieved from a client application.

6. The system of claim 1 , wherein the model of the first version of the API is retrieved from a server application.

7. The system of claim 1 , wherein the model of the first version of the API is provided via an http interface.

8. The system of claim 1 , wherein the processor is further configured to:

upon determining that the first version of the API and the second version of the API are compatible, sending a response to the request indicating that the first version of the API is compatible with the second version of the API.

9. The system of claim 1 , wherein differences includes a change to expected inputs or outputs of the first API.

10. The system of claim 1 , wherein differences includes an addition or a removal of a function from the first API.

11. A method, comprising:

receiving a request to determine a compatibility of a first version of an application programming interface (API) with a second version of the API;

retrieving a model of the first version of the API and a model of the second version of the API;

parsing each of the models to determine a first set of functionality of the first version of the API and a second set of functionality of the second version of the API;

mapping the first set of functionality to the second set of functionality to determine differences between the first set of functionality and the second set of functionality; and

determining the compatibility of the first version of the API with the second version of the API based on the differences

modifying the second version of the API responsive to determining that the first version of the API and the second version of the API are incompatible, wherein modifying the second version of the API comprises:

retrieving an installation package of the first version of the API; and

executing the installation package to transform the second version of the API to the first version of the API.

12. The method of claim 11 , wherein the request includes a required set of functionality, wherein the required set of functionality is a subset of the second set of functionality.

13. The method of claim 12 , wherein determining the compatibility includes verifying inclusion of the required set of functionality in the first set of functionality.

14. The method of claim 11 , wherein each model is retrieved from a server storing a plurality of versions of the API and associated models within a database.

15. A non-transitory machine readable medium storing code, which when executed by a processor is configured to:

receive a request to determine a compatibility of a first version of an application programming interface (API) with a second version of the API;

retrieve a model of the first version of the API and a model of the second version of the API;

parse each of the models to determine a first set of functionality of the first version of the API and a second set of functionality of the second version of the API;

map the first set of functionality to the second set of functionality to determine differences between the first set of functionality and the second set of functionality; and

determine the compatibility of the first version of the API with the second version of the API based on the differences;

modify the second version of the API responsive to determining that the first version of the API and the second version of the API are incompatible, wherein modifying the second version of the API comprises:

retrieving an installation package of the first version of the API; and

executing the installation package to transform the second version of the API to the first version of the API.

16. The non-transitory machine readable medium of claim 15 , wherein the request includes a required set of functionality, wherein the required set of functionality is a subset of the second set of functionality.

17. The non-transitory machine readable medium of claim 16 , wherein determining the compatibility includes verifying inclusion of the required set of functionality in the first set of functionality.

18. The non-transitory machine readable medium of claim 15 , wherein each model is retrieved from a server storing a plurality of versions of the API and associated models within a database.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2021
From: MACKENZIE, ANDREW D.; WITTMANN, ERIC
To: RED HAT, INC.
Reel/Frame 055533/0041 →
Cited By (1)
US 12,353,873