IP Library Granted Patent US 11,582,291
Granted Patent B2
US 11,582,291 · App. 16/933,287 · Granted Feb 14, 2023

Auto-documentation for application program interfaces based on network requests and responses

Inventors: Marco Palladino (San Francisco, CA); Augusto Marietti (San Francisco, CA)
Assignee: KONG INC.
H04L67/10G06F8/73H04L67/1004H04L67/01H04L67/02H04L67/563H04L67/568
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,582,291
App. No.
16/933,287
Granted
Feb 14, 2023
Kind
B2
Abstract

Disclosed embodiments are directed at systems, methods, and architecture for providing auto-documentation to APIs. The auto documentation plugin is architecturally placed between an API and a client thereof and parses API requests and responses in order to generate auto-documentation. In some embodiments, the auto-documentation plugin is used to update preexisting documentation after updates. In some embodiments, the auto-documentation plugin accesses an on-line documentation repository. In some embodiments, the auto-documentation plugin makes use of a machine learning model to determine how and which portions of an existing documentation file to update.

Claims (59)

1. A system for securing, managing, and extending functionalities of Application Programming Interfaces (APIs) in a microservices architecture, the system comprising:

a plurality of APIs organized into a microservices application architecture that comprises a microservices application; and

a processor operated control plane communicatively coupled to the plurality of APIs via data plane proxies, wherein the control plane is configured to:

receive an incoming proxied request from a first API of the plurality of APIs directed to a second API of the plurality of APIs, the proxied request relayed to the control plane via a first data plane proxy associated with the first API;

receive a proxied response from the second API, the proxied response relayed to the control plane via a second data plane proxy associated with the second API;

parse the proxied request and the proxied response and extract current data;

in response to a transaction that includes the request and the response, execute an auto-documentation plugin, wherein the auto-documentation plugin is configured to generate documentation based on the current data; and

a data store configured to store the control plane and the documentation.

2. The system of claim 1 , further comprising:

a first gateway node and a second gateway node, the first gateway node and second gateway node configured as external end-points of the microservices application, wherein the first and second gateway nodes are further configured to:

save, by the first gateway node, software code in the data store, wherein the software code is associated with a given plugin included in a plurality of plugins;

retrieving, by the second gateway node, the software code from the data store; and

installing, by the second gateway node, the given plugin at the second gateway node, using the retrieved software code associated with the given plugin.

3. The system of claim 1 , further comprising:

a memory architecturally separate from the plurality of APIs, the memory including a program code library configured to execute functionalities common to execution of the plurality of APIs on a node in communication with the memory.

4. The system of claim 2 , further comprising:

an administration API for configuring and installing the plurality of plugins, wherein the administration API is used for provisioning the plurality of APIs.

5. The system of claim 1 , wherein the request is parsed subsequent to the receiving the response from the API.

6. The system of claim 1 , wherein the request is parsed independently from delivery to the second API.

7. The system of claim 1 , wherein the auto-documentation is in the form of a Swagger file, a RAML file, or an API Blueprint file.

8. The system of claim 1 , wherein the auto-documentation includes one or more endpoints, one or more parameters, or one or more methods of the transaction.

9. The system of claim 1 , wherein the request and the response is associated with an endpoint, wherein executing the auto-documentation plugin for the transaction includes:

retrieving previously generated documentation for the endpoint;

comparing the previously generated auto-documentation with the current data to determine the difference; and

upon determining a difference, generating documentation for the transaction.

10. The system of claim 9 , wherein the previously generated documentation associated with the endpoint and includes at least one of: a body, one or more headers, or one or more parameters.

11. The system of claim 9 , wherein executing the auto-documentation plugin for the transaction includes:

upon determining a difference does not exist, entering a state associated with not generating documentation for the transaction.

12. The system of claim 9 , wherein executing the auto-documentation plugin for the transaction includes:

upon determining the difference, electronically generating a notification for alerting the difference to a user.

13. A system comprising:

a processor operated application program interface (API) gateway architecturally positioned to receive proxied communications between a plurality of APIs that operate a microservices application, the proxied communications are transmitted via data plane proxies that correspond to each of the plurality of APIs, wherein the API gateway parses API requests and responses in between the plurality of APIs and extracts current data and executes an auto-documentation program function, wherein the auto-documentation program function is configured to generate auto-documentation in response to a transaction that includes the request and the response, the auto-documentation based on the transaction; and

a memory architecturally separate from the microservices application, the memory including a program code library configured to execute functionalities common to execution of the plurality of APIs on the API gateway in communication with the memory.

14. The system of claim 13 , wherein the API gateway further comprises:

a network interface that receives client requests, executes the program code library, and performs load balancing; and

a data store that stores the program code library.

15. The system of claim 14 , the API gateway further comprising:

a gateway cache that stores portions or all of the functionalities common to execution of the plurality of APIs and improves execution time over accessing the auto-documentation program function via the data store.

16. The system of claim 13 , wherein the functionalities common to execution of the plurality of APIs comprise any of:

authentication;

logging;

caching;

transformations;

rate-limiting; or

any combination thereof.

17. The system of claim 13 , wherein the functionalities common to execution of the plurality of APIs includes a first program function and a second program function.

18. The system of claim 17 , the API gateway further comprising:

an administration API programmed to configure and install the first and second program functions, and further programmed to provision the API.

19. The system of claim 17 , wherein the plurality of APIs cannot perform the first or second program functions without code from the program code library on a proxy server.

20. A method for securing, managing, and extending functionalities of a plurality of Application Programming Interfaces (APIs) in a microservices architecture, the method comprising:

receiving, by a control plane, an incoming proxied request from a first API of the plurality of APIs directed to a second API of the plurality of APIs, the proxied request relayed to the control plane via a first data plane proxy associated with the first API;

receiving, by the control plane, a proxied response from the second API, the proxied response relayed to the control plane via a second data plane proxy associated with the second API;

parsing the proxied request and the proxied response and extracting current data;

in response to a transaction that includes the request and the response, executing an auto-documentation plugin, wherein the auto-documentation plugin is configured to generate documentation based on the current data between the first API and the second API;

identifying, by the control plane, a set of APIs of the plurality of APIs that belong to a service group;

parsing requests and responses between the set of APIs belonging to the service group;

identifying similar or matching objects across the requests and responses of multiple APIs; and

in response to said identification of the set of APIs, executing the auto-documentation plugin, wherein the auto-documentation plugin is configured to generate service group level documentation based on requests and responses within the service group.

21. The method of claim 20 , wherein the set of APIs that belong to the service group are along a same execution path.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 61609/0267 Recorded Feb 28, 2025
From: ACQUIOM AGENCY SERVICES LLC
To: KONG INC.
Reel/Frame 070366/0162 →
SECURITY INTEREST Recorded Feb 28, 2025
From: KONG INC.
To: HSBC VENTURES USA INC.
Reel/Frame 070372/0963 →
SECURITY INTEREST Recorded Nov 1, 2022
From: KONG INC.
To: ACQUIOM AGENCY SERVICES LLC
Reel/Frame 061609/0267 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: PALLADINO, MARCO; MARIETTI, AUGUSTO
To: KONG INC.
Reel/Frame 053253/0659 →
Continuity (8)
Continuation In Part 16714662 · Dec 13, 2019
Continuation In Part 16254788 · Jan 23, 2019
Continuation 15974532 · May 8, 2018
Continuation In Part 15899529 · Feb 20, 2018
Continuation 15662539 · Jul 28, 2017
Provisional Application 62896412 · Sep 5, 2019
Related Publication 20200351332A1 · Nov 5, 2020
Related Publication 20220103613A9 · Mar 31, 2022