IP Library Granted Patent US 11,614,991
Granted Patent B2
US 11,614,991 · App. 16/924,992 · Granted Mar 28, 2023

Recommendation engine for application programming interface (API) in a multi-cloud environment

Inventor: John Kelly (Mallow, IE)
Assignee: DELL PRODUCTS L.P.
G06F11/0793G06F9/5072G06F9/542G06F9/546G06F11/0772G06F16/9535G06F16/9538
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,614,991
App. No.
16/924,992
Granted
Mar 28, 2023
Kind
B2
Abstract

The multiplicity of APIs that existing in a multi-cloud environment creates significant complexity for users. It can be unclear which API call should be made for a specific layer. Also, given the different API calls used by different cloud providers, they can be easily confused. Accordingly, embodiments help to reduce this complexity and simplify multi-cloud environments from a developer/user perspective. In one or more embodiments, an API with an error and its error message are captured and used as context-based information to suggest one or more recommendations to a user about how their API call should be made (e.g., to another API, to an alternative cloud provider, or by changing syntax).

Claims (60)

1. A computer-implemented method for recommending an application programming interface (API), the method comprising:

intercepting an error message related to an API usage that includes an error that results in the error message being generated following an attempt to execute the API usage;

responsive to the error message for the API usage identifying a field within the API usage that contains the error, performing at least one of:

using the identified field in the error message to search an API datastore for possible API matches as potential recommendations; and

using at least one or more non-identified fields in the error message to search the API datastore for possible API matches as potential recommendations;

responsive to the error message for the API usage not identifying a field within the API usage that contains the error, using one or more fields of the API usage to search the API datastore for possible API matches as potential recommendations;

supplementing the error message with a set of API recommendations from the potential recommendations; and

sending the supplemented error message comprising the set of API recommendations for displaying to a user.

2. The computer-implemented method of claim 1 wherein the set of API recommendations comprises an indicator that there are no API recommendations.

3. The computer-implemented method of claim 1 wherein the step of searching an API datastore for possible API matches as potential recommendations comprising:

using text matching to match at least a portion of the API usage with the error to one or more other API usages or APIs;

using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error; or

both.

4. The computer-implemented method of claim 3 wherein the step using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error comprises:

converting at least a portion of the API usage into one or more representations; and

using a similarity comparison to compare one or more of the representations of the API usage with representations corresponding to valid APIs stored in the datastore.

5. The computer-implemented method of claim 1 wherein the set of API recommendations comprises the possible API matches that exceed a threshold level of similarity, that are a top set of matches, or both.

6. The computer-implemented method of claim 1 wherein the step of intercepting an error message related to the API usage that includes an error that results in the error message being generated following an attempt to execute the API usage is performed at a proxy layer.

7. The computer-implemented method of claim 6 wherein the proxy layer is functionally positioned to intercept the error message before being received by a cloud API interface.

8. A system comprising:

one or more processors; and

a non-transitory computer-readable medium or media comprising one or more sets of instructions that, when executed by at least one of the one or more processors, causes implementation comprising:

a proxy component that intercepts an error message related to an API usage that includes an error that results in the error message being generated following an attempt to execute the API usage, passes the error message to a recommendation engine, and that sends a supplemented error message comprising a set of API recommendations to a user; and

the recommendation engine that received the error message and that:

responsive to the error message for the API usage identifying a field within the API usage that contains the error, performing at least one of:

using the identified field in the error message to search an API datastore for possible API matches as potential recommendations; and

using at least one or more non-identified fields in the error message to search the API datastore for possible API matches as potential recommendations; and

responsive to the error message for the API usage not identifying a field within the API usage that contains the error, using one or more fields of the API usage to search the API datastore for possible API matches as potential recommendations; and

wherein the proxy component or the recommendation engine supplements the error message with the set of API recommendations from the potential recommendations.

9. The system of claim 8 wherein selecting the set of API recommendations includes considering frequency of usage of an API.

10. The system of claim 8 wherein the step of searching an API datastore for possible API matches as potential recommendations comprising:

using text matching to match at least a portion of the API usage with the error to one or more other API usages or APIs;

using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error; or

both.

11. The system of claim 10 wherein the step using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error comprises:

converting at least a portion of the API usage into one or more representations; and

using a similarity comparison to compare one or more of the representations of the API usage with representations corresponding to valid APIs stored in the datastore.

12. The system of claim 8 wherein the set of API recommendations comprises the possible API matches that exceed a threshold level of similarity, that are a top set of matches, or both.

13. The system of claim 10 wherein the step of using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error comprises:

converting at least a portion of the API usage into the representation; and

inputting the representation into a trained neural model that using the representation as an input and outputs a set of similar APIs.

14. A non-transitory computer-readable medium or media comprising one or more sequences of instructions which, when executed by at least one processor, causes steps to be performed comprising:

intercepting an error message related to an API usage that includes an error that results in the error message being generated following an attempt to execute the API usage;

responsive to the error message for the API usage identifying a field within the API usage that contains the error, performing at least one of:

using the identified field in the error message to search an API datastore for possible API matches as potential recommendations; and

using at least one or more non-identified fields in the error message to search the API datastore for possible API matches as potential recommendations;

responsive to the error message for the API usage not identifying a field within the API usage that contains the error, using one or more fields of the API usage to search the API datastore for possible API matches as potential recommendations;

supplementing the error message with a set of API recommendations from the potential recommendations; and

sending the supplemented error message comprising the set of API recommendations for displaying to a user.

15. The non-transitory computer-readable medium or media of claim 14 wherein the set of API recommendations comprises an indicator that there are no API recommendations.

16. The non-transitory computer-readable medium or media of claim 14 wherein the step of searching an API datastore for possible API matches as potential recommendations comprising:

using text matching to match at least a portion of the API usage with the error to one or more other API usages or APIs;

using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error; or

both.

17. The non-transitory computer-readable medium or media of claim 16 wherein the step using a representation of at least a portion of the API usage and one or more similarity methods to identify one or more API usages or APIs that are the same or similar as the API usage with the error comprises:

converting at least a portion of the API usage into one or more representations; and

using a similarity comparison to compare one or more of the representations of the API usage with representations corresponding to valid APIs stored in the datastore.

18. The non-transitory computer-readable medium or media of claim 14 wherein the set of API recommendations comprises the possible API matches that exceed a threshold level of similarity, that are a top set of matches, or both.

19. The non-transitory computer-readable medium or media of claim 14 wherein the step of intercepting an error message related to the API usage that includes an error that results in the error message being generated following an attempt to execute the API usage is performed at a proxy layer.

20. The non-transitory computer-readable medium or media of claim 19 wherein the proxy layer is functionally positioned to intercept the error message before being received by a cloud API interface.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2020
From: KELLY, JOHN
To: DELL PRODUCTS L.P.
Reel/Frame 053780/0594 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →