US 11,755,744 B2
Application programming interface specification inference
Francois Gauthier, Brisbane (AU); Behnaz Hassanshahi, Brisbane (AU); and Max Marius Schlüter, Berlin (DE)
Assigned to Oracle International Corporation, Redwood Shores, CA (US)
Filed by Oracle International Corporation, Redwood Shores, CA (US)
Filed on Nov. 7, 2019, as Appl. No. 16/676,760.
Prior Publication US 2021/0141904 A1, May 13, 2021
Int. Cl. G06F 3/00 (2006.01); G06F 21/57 (2013.01); G06F 16/955 (2019.01); G06F 9/54 (2006.01)
CPC G06F 21/577 (2013.01) [G06F 9/54 (2013.01); G06F 16/955 (2019.01)] 17 Claims
OG exemplary drawing
 
1. A method, comprising:
identifying, by executing an application, an entry point corresponding to a Universal Resource Locator (URL) path, wherein the entry point is a location in the application where the application is invoked by code external to the application;
extracting, from the application, an entry point declaration corresponding to the entry point;
determining, by performing a static analysis starting at the entry point declaration, that a first parameter is accessible by the application, wherein the first parameter is an argument received by the application at the entry point of the application;
inferring, by the static analysis, a first type of the first parameter by analyzing usage of the first parameter by the application;
observing, for the entry point, one or more requests processed by the application;
deriving, from the one or more requests, a dynamically generated Application Programing Interface (API) specification corresponding to the entry point; and
deriving, by the static analysis, a statically generated API specification corresponding to the entry point, wherein the statically generated API specification assigns the first type to the first parameter.