IP Library Granted Patent US 12,443,469
Granted Patent B2
US 12,443,469 · App. 17/520,074 · Granted Oct 14, 2025

System and method for automatic discovery of candidate application programming interfaces and dependencies to be published

Inventors: Martin Battaglia (Buenos Aires, AR); Alvaro Gaita (Buenos Aires, AR); Leandro Bauret (Buenos Aires, AR)
Assignee: Salesforce, Inc.
G06F9/544
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 12,443,469
App. No.
17/520,074
Granted
Oct 14, 2025
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for automatically discovering an API for publishing within a data repository. A discovery tool is used either on a server computer or a customer computer to examine the files stored in the data repository. A search of the repository is conducted to identify root API files that form the basis of an API. A first examination is conducted in which the files are examined for common indicia associated with known API standards. Then a second examination is done of the root API candidates found in the first examination to identify which of the root API candidates is actually a root API. Once the root API has been located, it is executed in a computer environment, and its dependents are detected. Once all the necessary API files have been located, they are packaged and automatically published.

Claims (78)

1. A method for automatically identifying an Application Programming Interface (API) that includes a plurality of computer files, the method comprising:

reviewing each of the plurality of computer files for one or more API indicia to determine a set of root API candidates that is a subset of the plurality of computer files;

examining the set of root API candidates to identify a confirmed root API;

traversing an API tree associated with the confirmed root API, the traversing including executing the confirmed root API and listening for function and external file calls during the executing;

identifying additional components associated with the confirmed root API;

locating the additional components of the confirmed root API, the additional components being located in a plurality of different data repositories;

in response to the reviewing having been automatically initiated:

automatically retrieving the additional components from the plurality of different data repositories; and

automatically publishing the API that includes the confirmed root API and the additional components;

in response to the reviewing having been initiated by a user:

providing the user with a list of API components, the API components including the confirmed root API, API files found from the traversing, and the additional components; and

receiving from the user a descriptor file that includes selected API components from the list for publishing;

retrieving the API components and the additional components identified in the descriptor file from the plurality of different data repositories; and

publishing the API that includes the confirmed root API and the additional components; and

storing the confirmed root API and the retrieved additional components in a common data repository.

2. The method of claim 1 , wherein the API indicia include one or more of a formatting, a pattern, or a notation consistent with a standard API format.

3. The method of claim 1 , wherein the additional components include related documents necessary for publishing of the confirmed root API, including specifications and markdown documents.

4. The method of claim 1 , wherein the traversing the API tree includes:

retrieving external files called by the confirmed root API during the executing;

providing the retrieved external files to the confirmed root API; and

adding the retrieved external files to a list that includes a component data file.

5. The method of claim 4 , wherein the identifying the additional components of the confirmed root API includes listening for calls by the confirmed root API to the external files.

6. The method of claim 5 , wherein the identifying the additional components of the confirmed root API further includes:

retrieving external files from a data repository;

providing the external files to the confirmed root API under execution; and

adding the external files to a list of API components.

7. The method of claim 6 , wherein the list of API components includes the confirmed root API and is the descriptor file.

8. An Application Programming Interface (API) discovery system for identifying an API associated with a customer, comprising:

a common repository that stores customer API data;

a computing device communicatively coupled to the common repository having one or more processors configured to:

access the common repository;

review data files located in the common repository to identify a set of root API candidates;

review the set of root API candidates to identify a confirmed root API;

retrieve the confirmed root API from the common repository;

identify component data files associated with the confirmed root API, the component data files being located in a plurality of different data repositories, the identifying including executing the confirmed root API and listening for function and external file calls during the executing;

in response to the reviewing having been automatically initiated:

automatically retrieve the component data files from the plurality of different data repositories; and

automatically publish the API that includes the confirmed root API and the component data files;

in response to the reviewing having been initiated by a user:

provide the user with a list of API components, the API components including the confirmed root API and the component data files; and

receive from the user a descriptor file that includes selected API components from the list for publishing;

retrieve the API components and the component data files identified in the descriptor file from the plurality of different data repositories based on the descriptor file;

publish the API that includes the confirmed root API and the component data files; and

store the confirmed root API and the retrieved API components in a common data repository.

9. The API discovery system of claim 8 , further comprising a memory that stores a plurality of attributes associated with a plurality of standard API formats.

10. The API discovery system of claim 9 , wherein to identify the set of root API candidates the one or more processors are configured to determine whether the data files located in the common repository include one or more of the plurality of attributes.

11. The API discovery system of claim 8 , wherein the API components include related documents necessary for publishing of the confirmed root API, including specifications and markdown documents.

12. The API discovery system of claim 8 , wherein the one or more processors are further configured to traverse an API tree associated with the confirmed root API in order to identify the component data files.

13. The API discovery system of claim 12 , wherein to traverse the API tree, the one or more processors are configured to:

retrieve external files called by the confirmed root API during the executing;

provide the retrieved external files to the confirmed root API; and

add the retrieved external files to a list that includes the component data files.

14. The API discovery system of claim 13 , wherein the API discovery system is a virtual instantiation of the confirmed root API.

15. A method for automatic discovery of an Application Programming Interface (API) within a data repository that includes a plurality of data files, the method comprising:

accessing the data repository;

identifying a plurality of root API candidates within the data repository as the data files within the data repository that have at least one attribute associated with a standard API format;

reviewing the plurality of root API candidates to identify a confirmed root API; and

reviewing the confirmed root API to identify API component files, the API component files being located in a plurality of different locations, the reviewing of the plurality of root API candidates including executing the confirmed root API and listening for function and external file calls during the executing;

in response to the reviewing of the plurality of root API candidates having been automatically initiated:

automatically retrieving the API component files associated with the confirmed root API; and

automatically publishing the API that includes the API component files;

in response to the reviewing of the plurality of root API candidates having been initiated by a user:

providing the user with a list of the API component files; and

receiving from the user a descriptor file that includes selected API components from among the API component files; and

retrieving the API component files from the plurality of different locations based on the descriptor file;

publishing the API that includes the confirmed root API and the identified API component files; and

storing the confirmed root API and the identified API component files in the data repository.

16. The method of claim 15 , wherein the API component files include related documents necessary for publishing the confirmed root API, including specifications and markdown documents.

17. The method of claim 16 , further comprising receiving a revised list from the user that differs from the list.

18. The method of claim 17 , wherein the list and the revised list are descriptor files.

19. The method of claim 17 , further comprising:

obtaining data files listed in the revised list;

packaging the obtained data files into an API package; and

publishing the API package.

20. The method of claim 15 , further comprising:

obtaining the confirmed root API and the API component files from the data repository;

packaging the confirmed root API and API component files into an API package; and

publishing the API package without user input.

Assignments (2)
CHANGE OF NAME Recorded Nov 20, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069406/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2021
From: BATTAGLIA, MARTIN; GAITA, ALVARO; BAURET, LEANDRO
To: SALESFORCE.COM, INC.
Reel/Frame 058050/0844 →
Continuity (2)
Provisional Application 63246189 · Sep 20, 2021
Related Publication 20230086564A1 · Mar 23, 2023
References Cited (13)
US 8893077B1 · Aiuto · 2014 [cited by examiner]
US 10908971B1 · Gonzalez · 2021 [cited by examiner]
US 20090287670A1 · Hou · 2009 [cited by examiner]
US 20140047368A1 · Yang · 2014 [cited by examiner]
US 20140359261A1 · Collins · 2014 [cited by examiner]
US 20170102925A1 · Ali · 2017 [cited by examiner]
US 20180173522A1 · Hamill · 2018 [cited by examiner]
US 20190220331A1 · Duggal · 2019 [cited by examiner]
US 20200364033A1 · Lester · 2020 [cited by examiner]
US 20200371851A1 · Liu · 2020 [cited by examiner]
US 20200372088A1 · Liu · 2020 [cited by examiner]
US 20210099483A1 · Shukla · 2021 [cited by examiner]
US 20210216288A1 · Bahrami · 2021 [cited by examiner]