IP Library › Granted Patent US 11,467,887
Granted Patent B1
US 11,467,887 · App. 15/961,535 · Granted Oct 11, 2022

Application programming interface (API) management and development

Inventors: Elizabeth Caudill (San Francisco, CA); Siyuan Chen (Mountain View, CA); Parker Phillips (San Francisco, CA); Samuel Rogerson (Palo Alto, CA)
Assignee: Palantir Technologies Inc.
G06F9/54G06F3/04847G06F16/27
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,467,887
App. No.
15/961,535
Granted
Oct 11, 2022
Kind
B1
Abstract

The present disclosure relates to systems and techniques for developing APIs that utilize multiple pre-existing APIs. The present disclosure also relates to a user interface that allows for chaining APIs together as a function of multiple pre-existing APIs. The present disclosure also relates to security and authorization of a user to execute one or more APIs as part of an API chain.

Claims (50)

1. A computing system comprising:

a computer readable storage medium having program instructions embodied therewith; and

one or more computer hardware processors configured to execute the program instructions to cause the computing system to:

provide one or more user interfaces allowing a user to view information regarding multiple APIs and allowing the user to configure a user definition for a combined API involving linked execution of a plurality of APIs;

receive input from the user via the one or more user interfaces, the user input specifying the user definition for the combined API involving linked execution of the plurality of APIs, wherein the user definition includes a selection of each API in the plurality of APIs and an execution structure for linking execution of the plurality of APIs, and wherein the plurality of APIs includes at least a first API and a second API, and wherein the user definition further includes a user-defined transformation for updating an output of the first API from a first data format to a second data format in order to generate an input to the second API having the second data format;

store a mapping of the plurality of APIs based at least in part on the received user input, wherein the mapping is configured to facilitate execution of the plurality of APIs in accordance with the execution structure in the user definition, including execution of the first API and execution of the second API in response to selection of the combined API, whereby the input of the second API is based at least in part on the output of the first API and is used to execute the second API in accordance with the received input, and wherein the mapping defines the user-defined transformation for updating the output of the first API from the first data format to the second data format in order to generate the input to the second API having the second data format

receive a selection of the combined API for execution;

access the stored mapping associated with the combined API;

initiate execution of the combined API in accordance with the stored mapping;

receive, via the one or more user interfaces, a user selection to disable a third API of the plurality of APIs; and

in response to the user selection to disable the third API:

disable display of the third API in the one or more user interfaces to prevent a second user from viewing or configuring information regarding the third API; or

disable execution of the third API to prevent the third API from executing in response to execution of the combined API.

2. The computing system of claim 1 , wherein the mapping of the plurality of APIs is based at least in part on a set of data parameters received via the one or more user interfaces.

3. The computing system of claim 1 , wherein APIs of the plurality of APIs are executed based at least in part on an API execution order specified by the execution structure.

4. The computing system of claim 3 , wherein the API execution order is based on input received from the user via the one or more user interfaces.

5. The computing system of claim 3 , wherein the API execution order is additionally based on instructions stored on a memory device.

6. The computing system of claim 1 , wherein the plurality of APIs further comprises a third API, wherein the mapping specifies that the third API is executed substantially concurrently with execution of the second API.

7. A method comprising:

receiving input from a user via one or more user interfaces that allow a user to view information regarding multiple APIs and allow the user to configure a user definition for a combined API involving linked execution of a plurality of APIs, the user input specifying the user definition for the combined API involving linked execution of the plurality of APIs, wherein the user definition includes a selection of each API in the plurality of APIs and an execution structure for linking execution of the plurality of APIs, and wherein the plurality of APIs includes at least a first API and a second API, and wherein the user definition further includes a user-defined transformation for updating an output of the first API from a first data format to a second data format in order to generate an input to the second API having the second data format;

storing a mapping of the plurality of APIs based at least on the received user input, wherein the mapping is configured to facilitate execution of the plurality of APIs in accordance with the execution structure in the user definition and identifies the output of the first API and the user-defined transformation for updating the output of the first API from a first data format to a second data format to be used as the input to the second API having the second data format;

receiving selection of the combined API for execution;

accessing the stored mapping associated with the combined API;

executing the first API in accordance with the mapping;

executing, according to the mapping of the plurality of APIs, the second API, wherein the identified output of the first API is automatically provided as input to the second API according to the mapping of the plurality of APIs;

receiving, via the one or more user interfaces, a user selection to disable a third API of the plurality of APIs; and

in response to the user selection to disable the third API:

disable display of the third API in the one or more user interfaces to prevent a second user from viewing or configuring information regarding the third API; or

disable execution of the third API to prevent the third API from executing in response to execution of the combined API.

8. The method of claim 7 , wherein the mapping of the plurality of APIs is based at least in part on a set of data parameters received via the one or more user interfaces.

9. The method of claim 7 , wherein the APIs of the plurality of APIs are executed based at least in part on an API execution order specified by the execution structure.

10. The method of claim 9 , wherein the API execution order is based on input received from the user via the one or more user interfaces.

11. The method of claim 9 , wherein the API execution order is additionally based on instructions stored on a memory device.

12. The method of claim 7 , wherein the plurality of APIs further comprises a third API, wherein the mapping specifies that the third API is executed substantially concurrently with execution of the second API.

13. A non-transitory computer-readable storage medium including computer-executable instructions that, when executed by a processor, cause the processor to:

provide one or more user interfaces allowing a user to view information regarding multiple APIs and allowing the user to configure a user definition for a combined API involving linked execution of a plurality of APIs;

receive input from the user via the one or more user interfaces specifying the user definition for the combined API involving linked execution of the plurality of APIs, wherein the user definition includes a selection of each API in the plurality of APIs and an execution structure for linking execution of the plurality of APIs, and wherein the plurality of APIs includes at least a first API and a second API, and wherein the user definition further includes a user-defined transformation for updating an output of the first API from a first data format to a second data format in order to generate an input to the second API having the second data format;

store a mapping of the plurality of APIs based at least on the received user input, wherein the mapping is configured to facilitate execution of the plurality of APIs in accordance with the execution structure in the user definition and identifies the output of the first API and the user-defined transformation for updating the output of the first API from a first data format to a second data format to be used as the input to the second API having the second data format;

receive a selection of the combined API for execution;

access the stored mapping associated with the combined API;

execute, according to the mapping of the plurality of APIs, the plurality of APIs, wherein the identified output of the first API is automatically provided as input to the second API according to the mapping of the plurality of APIs;

receiving, via the one or more user interfaces, a user selection to disable a third API of the plurality of APIs; and

in response to the user selection to disable the third API:

disable display of the third API in the one or more user interfaces to prevent a second user from viewing or configuring information regarding the third API; or

disable execution of the third API to prevent the third API from executing in response to execution of the combined API.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the mapping of the plurality of APIs is based at least in part on a set of data parameters received via the one or more user interfaces.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the computer-executable instructions further cause the processor to:

execute the APIs of the plurality of APIs based at least in part on an API execution order specified by the execution structure.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the API execution order is based on input received from the user via the one or more user interfaces.

17. The non-transitory computer-readable storage medium of claim 15 , wherein the API execution order is additionally based on instructions stored on a memory device.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE FOURTH ASSIGNOR PREVIOUSLY RECORDED AT REEL: 046665 FRAME: 0247. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Aug 24, 2018
From: CAUDILL, ELIZABETH; CHEN, SIYUAN; PHILLIPS, PARKER; ROGERSON, SAMUEL
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046928/0363 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2018
From: CAUDILL, ELIZABETH; CHEN, SIYUAN; PHILLIPS, PARKER; ROGERSON, SAMUEL
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046665/0247 →
Continuity (1)
Provisional Application 62641615 · Mar 12, 2018
Cited By (5)
US 12,301,582 US 12,493,546 US 12,493,617 US 12,579,054 US 12,608,247