IP Library Granted Patent US 12,353,875
Granted Patent B2
US 12,353,875 · App. 18/500,372 · Granted Jul 8, 2025

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.
G06F8/73H04L67/10H04L67/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 12,353,875
App. No.
18/500,372
Granted
Jul 8, 2025
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 online 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 (68)

1. A method for managing Application Programming Interfaces (APIs) in a microservices architecture, the method comprising:

communicatively coupling a control plane to a plurality of APIs organized into a microservices application architecture via data plane proxies;

receiving an incoming proxied request generated by a first API of the plurality of APIs and intended for 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 a response from the second API;

inspecting, by an artificial intelligence model, at least one of:

a parameter of the proxied request or a parameter of the response from the second API,

a history of parameters received by the first API or the second API, or

a history of responses returned by requests generated by the first API,

wherein output of the artificial intelligence model indicates an expected operation of the first API or the second API based on the inspection of at least one of the parameter of the proxied request or the parameter of the response from the second API, the history of parameters received by the first or second API, or the history of responses returned by requests generated by the first API; and

executing an auto-documentation plugin, wherein the auto-documentation plugin is configured to generate documentation based on the output of the artificial intelligence model.

2. The method of claim 1 , wherein the response from the second API is a proxied response responsive to the proxied request and relayed to the control plane via a second data plane proxy associated with the second API, further comprising:

inspecting, by the artificial intelligence model, values within the proxied request as corresponding to the parameter of the proxied request and to the history of parameters received by the first API, wherein the output of the artificial intelligence model further indicates an expected operation of the first API or the second API based on said inspecting.

3. The method of claim 1 , wherein said inspecting by the artificial intelligence model is based on analysis connected to semantic interpretation.

4. The method of claim 1 , wherein said inspecting further includes parameter data types of the proxied request and the output of the artificial intelligence model is further based on the parameter data types.

5. The method of claim 2 , wherein said inspecting by the artificial intelligence model is based on analysis connected to a historical model of a request/response schema.

6. The method of claim 1 , further comprising:

configuring a first gateway node and a second gateway node as external endpoints of the microservices application architecture;

saving, by the first gateway node, software code in a 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.

7. The method of claim 6 , wherein the given plugin builds the artificial intelligence model.

8. The method of claim 1 , further comprising:

providing 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.

9. The method of claim 1 , wherein the proxied request is inspected subsequent to receiving the response from the second API.

10. The method of claim 1 , wherein the request is inspected independently from delivery to the second API.

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

12. The method of claim 1 , further comprising:

retrieving previously generated documentation for the first API;

comparing the previously generated documentation with the output of the artificial intelligence model to determine a difference; and

upon determining the difference, generating the documentation based on the output of the artificial intelligence model.

13. A method for managing Application Programming Interfaces (APIs) in a microservices architecture, the method comprising:

communicatively coupling a control plane to a plurality of APIs organized into a microservices application architecture via data plane proxies;

receiving an incoming proxied communication between a subset of communicating APIs of the plurality of APIs, the proxied communication relayed to the control plane via the data plane proxies;

inspecting, by an artificial intelligence model, any combination of:

parameter names,

parameter data types,

endpoint designations,

method names, or

sequence of request/responses

of the proxied communication, wherein output of the artificial intelligence model indicates an expected operation of the subset of communicating APIs based on inspected elements of the proxied communication; and

executing an auto-documentation plugin, wherein the auto-documentation plugin is configured to generate documentation based on the output of the artificial intelligence model.

14. The method of claim 13 , further comprising:

retrieving previously generated documentation for the subset of communicating APIs that the incoming proxied communication is received between;

comparing the previously generated documentation with the output of the artificial intelligence model to determine a difference; and

upon determining the difference, generating the documentation based on the output of the artificial intelligence model.

15. The method of claim 13 , wherein said inspecting by the artificial intelligence model is based on analysis connected to semantic interpretation.

16. The method of claim 13 , wherein said inspecting by the artificial intelligence model is based on analysis connected to a historical model of a request/response schema.

17. The method of claim 13 , wherein the auto-documentation is in the form of a Swagger file, a RAML file, or an API Blueprint file.

18. A system for managing Application Programming Interfaces (APIs) in a microservices architecture, the system comprising:

a processor; and

a memory including instructions that when executed cause the processor to:

communicatively couple a control plane to a plurality of APIs organized into a microservices application architecture via data plane proxies;

receive an incoming proxied communication between a subset of communicating APIs of the plurality of APIs, the proxied communication relayed to the control plane via the data plane proxies;

inspect, by an artificial intelligence model, any combination of:

parameter names,

parameter data types,

endpoint designations,

method names, or

sequence of request/responses

of the proxied communication, wherein output of the artificial intelligence model indicates an expected operation of the subset of communicating APIs based on inspected elements of the proxied communication; and

execute an auto-documentation plugin, wherein the auto-documentation plugin is configured to generate documentation based on the output of the artificial intelligence model.

19. The system of claim 18 , the instructions further comprising:

retrieving previously generated documentation for the subset of communicating APIs;

comparing the previously generated documentation with the output of the artificial intelligence model to determine a difference; and

upon determining the difference, generating the documentation based on the output of the artificial intelligence model.

20. The system of claim 18 , wherein said inspecting by the artificial intelligence model is based on analysis connected to semantic interpretation.

21. The system of claim 18 , wherein said inspecting by the artificial intelligence model is based on analysis connected to a historical model of a request/response schema.

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

Assignments (2)
SECURITY INTEREST Recorded Feb 28, 2025
From: KONG INC.
To: HSBC VENTURES USA INC.
Reel/Frame 070372/0963 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2023
From: PALLADINO, MARCO; MARIETTI, AUGUSTO
To: KONG INC.
Reel/Frame 065435/0033 →
Continuity (9)
Continuation 18154682 · Jan 13, 2023
Continuation 16933287 · Jul 20, 2020
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 20240064195A1 · Feb 22, 2024
References Cited (88)
US 7788536B1 · Qureshi et al. · 2010 [cited by applicant]
US 8625757B1 · Karpov et al. · 2014 [cited by applicant]
US 8756617B1 · Boodman et al. · 2014 [cited by applicant]
US 8819629B2 · Sherrill · 2014 [cited by applicant]
US 9027039B2 · Michels et al. · 2015 [cited by applicant]
US 9577916B1 · Chou · 2017 [cited by examiner]
US 9602468B2 · Tubi et al. · 2017 [cited by applicant]
US 9716617B1 · Ahuja et al. · 2017 [cited by applicant]
US 9936005B1 · Palladino et al. · 2018 [cited by applicant]
US 9959363B2 · Kaplinger et al. · 2018 [cited by applicant]
US 9967285B1 · Rossman et al. · 2018 [cited by applicant]
US 10379838B1 · Chud · 2019 [cited by applicant]
US 10621005B2 · Wong et al. · 2020 [cited by applicant]
US 10623390B1 · Rosenhouse · 2020 [cited by applicant]
US 10686834B1 · Hitchcock · 2020 [cited by examiner]
US 10819784B1 · Solton · 2020 [cited by examiner]
US 10827020B1 · Cao et al. · 2020 [cited by applicant]
US 20040070604A1 · Bhat et al. · 2004 [cited by applicant]
US 20040250176A1 · Brown et al. · 2004 [cited by applicant]
US 20050027797A1 · San Andres et al. · 2005 [cited by applicant]
US 20050262475A1 · Halpern · 2005 [cited by applicant]
US 20060195840A1 · Sundarrajan et al. · 2006 [cited by applicant]
US 20070002731A1 · Misra · 2007 [cited by applicant]
US 20070280206A1 · Messer et al. · 2007 [cited by applicant]
US 20100241846A1 · Sundarrajan et al. · 2010 [cited by applicant]
US 20110087783A1 · Annapureddy et al. · 2011 [cited by applicant]
US 20120124647A1 · Simula et al. · 2012 [cited by applicant]
US 20130132582A1 · Kim et al. · 2013 [cited by applicant]
US 20130132584A1 · Palladino · 2013 [cited by examiner]
US 20130227291A1 · Ahmed et al. · 2013 [cited by applicant]
US 20140040863A1 · Hale et al. · 2014 [cited by applicant]
US 20140068047A1 · Williams et al. · 2014 [cited by applicant]
US 20140281739A1 · Tuffs et al. · 2014 [cited by applicant]
US 20140282053A1 · Hauschild et al. · 2014 [cited by applicant]
US 20140289699A1 · Paterson et al. · 2014 [cited by applicant]
US 20140366080A1 · Gupta et al. · 2014 [cited by applicant]
US 20140379938A1 · Bosch et al. · 2014 [cited by applicant]
US 20150301883A1 · Talla et al. · 2015 [cited by applicant]
US 20150301886A1 · Watanabe · 2015 [cited by applicant]
US 20150312364A1 · Bayliss et al. · 2015 [cited by applicant]
US 20150319154A1 · Balakrishnan et al. · 2015 [cited by applicant]
US 20150350092A1 · Kwon et al. · 2015 [cited by applicant]
US 20150350341A1 · Daute · 2015 [cited by applicant]
US 20160026461A1 · Bannister et al. · 2016 [cited by applicant]
US 20160048408A1 · Madhu et al. · 2016 [cited by applicant]
US 20160173578A1 · Sharma et al. · 2016 [cited by applicant]
US 20160269926A1 · Sundaram · 2016 [cited by applicant]
US 20170012838A1 · Kashtan · 2017 [cited by examiner]
US 20170060577A1 · Schreiber et al. · 2017 [cited by applicant]
US 20170063989A1 · Langouev et al. · 2017 [cited by applicant]
US 20170124210A1 · Suter et al. · 2017 [cited by applicant]
US 20170019468A1 · Charlton, III et al. · 2017 [cited by applicant]
US 20170187835A1 · Lim et al. · 2017 [cited by applicant]
US 20170206707A1 · Guay et al. · 2017 [cited by applicant]
US 20170220403A1 · Maag · 2017 [cited by examiner]
US 20170221119A1 · Pellow et al. · 2017 [cited by applicant]
US 20170242784A1 · Heorhiadi et al. · 2017 [cited by applicant]
US 20180054772A1 · Tan · 2018 [cited by applicant]
US 20180060159A1 · Justin et al. · 2018 [cited by applicant]
US 20180152310A1 · Ansari et al. · 2018 [cited by applicant]
US 20180270079A1 · Chamarajnager · 2018 [cited by examiner]
US 20180337891A1 · Subbarayan et al. · 2018 [cited by applicant]
US 20180349121A1 · Bagarolo et al. · 2018 [cited by applicant]
US 20180357114A1 · O'Kennedy et al. · 2018 [cited by applicant]
US 20190034199A1 · Pollock · 2019 [cited by examiner]
US 20190068438A1 · Kumar · 2019 [cited by examiner]
US 20190273746A1 · Coffing · 2019 [cited by applicant]
US 20190392066A1 · Kim · 2019 [cited by examiner]
US 20200012785A1 · Dykes · 2020 [cited by applicant]
US 20200112487A1 · Inamdar et al. · 2020 [cited by applicant]
US 20200162380A1 · Pilkington et al. · 2020 [cited by applicant]
US 20200167262A1 · Frontiero et al. · 2020 [cited by applicant]
US 20200329114A1 · Bahl et al. · 2020 [cited by applicant]
US 20200358802A1 · Viswambharan et al. · 2020 [cited by applicant]
US 20200366569A1 · White · 2020 [cited by applicant]
US 20210019194A1 · Bahl · 2021 [cited by examiner]
US 20210027182A1 · Harris · 2021 [cited by examiner]
US 20210058484A1 · Pilkington et al. · 2021 [cited by applicant]
US 20210184951A1 · Bonas · 2021 [cited by applicant]
US 20210352139A1 · Madisetti et al. · 2021 [cited by applicant]
US 20210365357A1 · Gamliel et al. · 2021 [cited by applicant]
US 20220109741A1 · Chen et al. · 2022 [cited by applicant]
US 20250061290A1 · Gardner · 2025 [cited by examiner]
WO 2008094540A1 · 2008 [cited by applicant]
WO 2019203785A1 · 2019 [cited by applicant]
Gamez, D., et al., “Toward SLA-Driven API Gateways,” Sep. 2015 (9 pages). [cited by applicant]
Kong-Open Source API management and Microservice Management, <https:/web.archive.org/web/20160221221135/ https://getkong.org/> Feb. 12, 2016 (4 pages). [cited by applicant]
Mashape, <https://web.archive.org/web/20160721224232/https:/www.mashape.com/> Jul. 21, 2016 (4 pages). [cited by applicant]