US2019158576A1PendingUtilityA1

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

53
Assignee: KONG INCPriority: Jul 28, 2017Filed: Jan 23, 2019Published: May 23, 2019
Est. expiryJul 28, 2037(~11 yrs left)· nominal 20-yr term from priority
H04L 67/42G06F 8/73H04L 67/10H04L 67/01H04L 67/568H04L 67/563H04L 67/1004H04L 67/02
53
PatentIndex Score
0
Cited by
0
References
0
Claims

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

exact text as granted — not AI-modified
1 . A system for securing, managing, and extending functionalities of Application Programming Interfaces (APIs), the system comprising:
 a plurality of APIs;   a plurality of plugins;   one or more processor operated gateway nodes communicatively coupled to the plurality of APIs, wherein the one or more gateway nodes are configured to:   receive an incoming request related to an API in the plurality of APIs,   proxy the incoming request to the API in the plurality of APIs;   receive a response from the API;   parse the request and the response for extracting current data;   execute an auto-documentation plugin in the plurality of plugins, wherein the auto-documentation plugin 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 data store coupled to the one or more gateway nodes configured to store the plurality of plugins, wherein data in the data store is shared by each of the one or more gateway nodes.   
     
     
         2 . The system of  claim 1 , wherein the one or more gateway nodes includes a first gateway node and a second gateway node, wherein the one or more gateway nodes are further configured to:
 saving, by the first gateway node, software code in the data store, wherein the software code is associated with a plugin included in the plurality of plugins;   retrieving, by the second gateway node, the software code from the data store; and   installing, by the second gateway node, the plugin at the second node, using the retrieved software code associated with the plugin.   
     
     
         3 . The system of  claim 1 , wherein the data store is an Apache Cassandra or a PostgreSQL. 
     
     
         4 . The system of  claim 1 , wherein the plurality of APIs include proprietary APIs, publicly available APIs, or invite-only APIs. 
     
     
         5 . The system of  claim 1 , wherein the one or more gateway nodes are further configured to:
 an administration API for configuring and installing the plurality of plugins, wherein the administration API is used for provisioning the plurality of APIs.   
     
     
         6 . The system of  claim 1 , wherein the request is parsed subsequent to the receiving the response from the API. 
     
     
         7 . The system of  claim 1 , wherein the request is parsed subsequent to proxying the request to the API and prior to the receiving the response from the API. 
     
     
         8 . 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. 
     
     
         9 . The system of  claim 1 , wherein the auto-documentation includes one or more endpoints, one or more parameters, one or more methods of the transaction. 
     
     
         10 . The system of  claim 1 , wherein the request or the response includes at least one of: a body, one or more headers, or one or more parameters. 
     
     
         11 . 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 auto-documentation for the endpoint;   comparing the previously generated auto-documentation with the current data to determine a difference; and   upon determining a difference, generating auto-documentation for the transaction.   
     
     
         12 . The system of  claim 1 , wherein the previously generated auto-documentation associated with the endpoint and includes at least one of: a body, one or more headers, or one or more parameters. 
     
     
         13 . The system of  claim 11 , wherein executing the auto-documentation plugin for the transaction includes:
 upon determining a difference does not exist, entering a state associated with not generating auto-documentation for the transaction.   
     
     
         14 . The system of  claim 11 , 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.   
     
     
         15 . A system comprising:
 a processor operated proxy server architecturally positioned between an application server and a client of the application server, the application server operating an application program interface (API), wherein the proxy server parses API requests from the client and the response from the API server 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 application server, the memory including a program code library configured to execute a program function used for operation of the API, wherein client requests of the API to execute the program function execute on the proxy server in communication with the memory.   
     
     
         16 . The system of  claim 15 , wherein the proxy server further comprises:
 a gateway that receives client requests, executes the program code library, and performs load balancing; and   a data store that stores the program code library.   
     
     
         17 . The system of  claim 16 , the proxy server further comprising:
 a gateway cache that stores portions or all of the program function and improves execution time over accessing the program function via the data store.   
     
     
         18 . The system of  claim 15 , wherein the API is a first API further comprising:
 a second API included on the application server or another application server having a similar position within network architecture as the application server, wherein the program code library configured to execute the program function is further used for operation of the second API in addition to the first API, and wherein client requests of the second API to execute the program function execute on the proxy server.   
     
     
         19 . The system of  claim 15 , wherein the API is any of:
 a proprietary APIs;   a publicly available APIs; or   an invite-only APIs.   
     
     
         20 . The system of  claim 15 , wherein the program function is a first program function and the program code library further comprising:
 A second program function used for operation of the API, wherein client requests of the API to execute the second program function execute on the proxy server.   
     
     
         21 . The system of  claim 20 , the proxy server further comprising:
 an administration API programmed to configure and install the first and second program functions, and further programmed to provision the API.   
     
     
         22 . The system of  claim 15 , wherein the application server and the proxy server are:
 virtual machines;   hardware machines;   provisioned on the same hardware machine; or   any combination thereof.   
     
     
         23 . The system of  claim 15 , wherein the API cannot perform the program function without code from the program code library on the proxy server. 
     
     
         24 . A method comprising:
 receiving, by a first server, an application program interface (API) request from a client, the first server architecturally positioned between an application server for the API and the client of the application server;   executing, on the first server, a program function from a program code library stored on a data store of the first server, the program function used for operation of the API;   parsing, by the first server API requests from the client and the response from the API server extracting current data; and   executing, by the first server, 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.   
     
     
         25 . The method of  claim 24 , wherein the API is a first API further comprising:
 receiving, by the first server, a second request from a second client for a second API, the first server architecturally positioned between a second application server for the second API and the second client of the second application server; and   executing, on the first server, the program function from the program code library stored on the first server, the program function used for operation of the second API.   
     
     
         26 . The method of  claim 24 , wherein the API is any of:
 a proprietary API;   a publicly available API; or   an invite-only API.   
     
     
         27 . The method of  claim 24 , wherein the program function is a first program function and the program code library further includes a second program function used for operation of the API, the method further comprising:
 executing, on the first server, a second program function from the program code library stored on the first server, the second program function used for operation of the API.   
     
     
         28 . The method of  claim 27 , wherein the first server further includes an administration API, and the method further comprising
 configuring and installing, by the first server, the first and second program functions; and   provisioning, by the first server, the API.   
     
     
         29 . The method of  claim 24 , wherein the application server and the first server are:
 virtual machines;   hardware machines;   provisioned on the same hardware machine; or   any combination thereof.   
     
     
         30 . The method of  claim 24 , wherein the API cannot perform the program function without code from the program code library on the first server.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.