IP Library Granted Patent US 11,734,153
Granted Patent B2
US 11,734,153 · App. 17/479,518 · Granted Aug 22, 2023

Automated discovery of API endpoints for health check and automated health check generation

Inventors: Robert M. O'Dell (Seattle, WA); Nicolas Hernan Battiato (Buenos Aires, AR); Diego Gabriel Larralde (Buenos Aires, AR); Guido Agustin Martinez (Buenos Aires, AR); Christian Vallejos (Buenos Aires, AR); Maria Florencia Vimberg (Buenos Aires, AR); Eduardo Cominguez (Buenos Aires, AR); Ignacio Agustin Manzano (Buenos Aires, AR); Peter Gorski (Burlingame, CA)
Assignee: Salesforce, Inc.
G06F11/3495G06F9/54
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,734,153
App. No.
17/479,518
Granted
Aug 22, 2023
Kind
B2
Abstract

Disclosed herein are system, method, and computer-readable medium embodiments for providing the ability to automate identification of endpoints of an API for potential health checks based on machine learning and/or similarity search algorithms. The algorithms analyze an API specification according to the algorithm's training and/or search among reference APIs. Rather than having to manually generate health check tests for the web service, a test developer can interact with a test service through a web browser and provide the service an API specification. The test service then can automatically rank identified endpoints according to a ranking system as well as automate health checks by automatically preparing the health check code according to each identified endpoint.

Claims (50)

1. A computer-implemented method comprising:

comparing, by one or more computing devices using an algorithm based on reference application programming interfaces (APIs) and reference metadata, a specification of a target application programming interface (API) and the reference APIs and reference meta data, wherein the algorithm is a machine learning algorithm, wherein the target API comprises an endpoint, and wherein the reference metadata comprises historical reference about instability of endpoints of the reference APIs;

assigning, by the one or more computing devices and based on the comparing, a relevance value to the endpoint of the target API, wherein the relevance value indicates a probability of the endpoint of the target API being of interest for a health check according to the historical reference about instability;

determining, by the one or more computing devices, the endpoint of the target API as being of interest for a health check using the machine learning algorithm, wherein the machine learning algorithm is trained using training APIs from the reference APIs; and

generating, by the one or more computing devices and based on the relevance value and the determining, an executable health check for the endpoint of the target API, wherein the executable health check comprises code extracted from a health check generation library.

2. The computer-implemented method of claim 1 , further comprising reinforcing, by the one or more computing devices, the algorithm based on further metadata.

3. The computer-implemented method of claim 2 , wherein:

the further metadata is based on the generated executable health checks; and

the reinforcing comprises reinforcing the algorithm based on the generated executable health checks.

4. The computer-implemented method of claim 2 , further comprising receiving, by the one or more computing devices, input from a user, wherein:

the input comprises an indication of a relevance of the endpoint of the target API as relating to a health check; and

the reinforcing comprises reinforcing the algorithm based on the input.

5. The computer-implemented method of claim 2 , wherein the reinforcing comprises adjusting the relevance based on analyzing the further metadata.

6. The computer-implemented method of claim 1 , further comprising training the machine training algorithm using the training APIs.

7. The computer-implemented method of claim 1 , wherein the algorithm comprises a similarity search algorithm and the comparing comprises:

searching the reference APIs; and

determining one of the reference APIs as being relevant to the specification of the target API.

8. The computer-implemented method of claim 7 , further comprising determining, by the one or more computing devices, the endpoint of the target API as being of interest for a health check based on the searching.

9. The computer-implemented method of claim 1 , further comprising executing, by the one or more computing devices, the generated executable health check.

10. The computer-implemented method of claim 9 , further comprising receiving, by the one or more computing devices, input from a user, wherein:

the input comprises a time schedule; and

the executing is based on the time schedule.

11. The computer-implemented method of claim 9 , further comprising logging information relating to the executing.

12. The computer-implemented method of claim 9 , further comprising sending, by the one or more computing devices, an alert indicating a completion of the executing.

13. The computer-implemented method of claim 1 , further comprising receiving, by the one or more computing devices, input from a user, wherein:

the input comprises an indication of a relevance of the endpoint of the API as relating to a health check; and

the generating of the executable health check is further based on the input.

14. A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computing devices, cause the one or more computing devices to perform operations comprising:

comparing, using an algorithm based on reference application programming interfaces (APIs) and reference metadata, a specification of a target application programming interface (API) and the reference APIs and reference metadata, wherein the algorithm is a machine learning algorithm, wherein the target API comprises an endpoint, and wherein the reference metadata comprises historical reference about instability of endpoints of the reference APIs;

assigning, based on the comparing, a relevance value to the endpoint of the target API, wherein the relevance value indicates a probability of the endpoint of the target API being of interest for a health check according to the historical reference about instability;

determining, by the one or more computing devices, the endpoint of the target API as being of interest for a health check using the machine learning algorithm, wherein the machine learning algorithm is trained using training APIs from the reference APIs; and

generating, based on the relevance value and the determining, an executable health check for the endpoint of the target API, wherein the executable health check comprises code extracted from a health check generation library.

15. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise reinforcing the algorithm based on further metadata.

16. The non-transitory computer-readable medium of claim 15 , wherein:

the operations further comprise receiving input from a user;

the input comprises an indication of a relevance of the endpoint of the target API as relating to a health check; and

the reinforcing comprises reinforcing the algorithm based on the input.

17. The non-transitory computer-readable medium of claim 14 , wherein the operations further comprise training the machine learning algorithm using the training APIs.

18. The non-transitory computer-readable medium of claim 14 , wherein:

the algorithm comprises a similarity search algorithm; and

the comparing comprises:

searching the reference APIs; and

determining one of the reference APIs as being relevant to the specification of the target API.

19. A system comprising:

one or more computing devices; and

a non-transitory computer-readable medium having instructions stored thereon that, when executed by the one or more computing devices, cause the one or more computing devices to perform operations comprising:

comparing, using an algorithm based on reference application programming interfaces (APIs) and reference metadata, a specification of a target application programming interface (API) and the reference APIs and reference metadata, wherein the algorithm is a machine learning algorithm, wherein the target API comprises an endpoint, and wherein the reference metadata comprises historical reference about instability of endpoints of the reference APIs;

assigning, based on the comparing, a relevance value to the endpoint of the target API, wherein the relevance value indicates a probability of the endpoint of the target API being of interest for a health check according to the historical reference about instability;

determining the endpoint of the target API as being of interest for a health check using the machine learning algorithm, wherein the machine learning algorithm is trained using training APIs from the reference APIs; and

generating, based on the relevance value and the determining, an executable health check for the endpoint of the target API, wherein the executable health check comprises code extracted from a health check generation library.

Assignments (3)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0571 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2023
From: COMINGUEZ, EDUARDO; MANZANO, IGNACIO AGUSTIN; GORSKI, PETER
To: SALESFORCE.COM, INC.
Reel/Frame 063681/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2022
From: O'DELL, ROBERT M; BATTIATO, NICOLAS HERNAN; LARRALDE, DIEGO GABRIEL; MARTINEZ, GUIDO AGUSTIN; VALLEJOS, CHRISTIAN; VIMBERG, MARIA FLORENCIA
To: SALESFORCE.COM, INC.
Reel/Frame 060723/0931 →
Cited By (1)
US 12,645,574