USRE48507EActiveUtility
System and method for extending proxy server functionality into API
Est. expiryNov 17, 2031(~5.4 yrs left)· nominal 20-yr term from priority
G06Q 10/40G06F 8/30G06F 9/44G06F 9/541G06Q 50/01H04L 65/40
86
PatentIndex Score
4
Cited by
14
References
77
Claims
Abstract
Systems and methods for facilitating distribution of application programming interfaces (APIs) in a social hub are described herein. The social API hub enables users (i.e., API consumers) to access (e.g., search, test, and/or otherwise utilize or consume) APIs that other users (i.e., API developers) submitted to the hub in a standardized manner. Additionally, users can wrap submitted APIs in a standard description format and add various add-ons on top of an existing API infrastructure in order to provide additional functionality.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method comprising:
receiving, at a management system, user-generated parameters describing functionality associated with an application program interface (API);
configuring, at the management system, a proxy for providing secure communications between an API server and a client;
generating, at the management system, a plurality of client libraries based on the user-generated parameters, wherein the client libraries are utilized by users of the management system to consume the API, and wherein generating the plurality of client libraries includes bringing the client libraries into existence;
providing, at the management system, a plurality of add-ons to the client, wherein each add-on of the plurality of add-ons provides functionality in addition to the API;
receiving, at the management system, an indication of a selection of an add-on of the plurality of add-ons;
associating, at the management system, the add-on of the plurality of add-ons with the API to provide functionality in addition to the API;
receiving, at the management system, a request to publish the API; and
publishing, at the management system, the API via an online platform
receiving, at the management system, a request to test the API within the online platform; and
responsive to the request, testing the API within the online platform.
2. The method of claim 1 , wherein the API returns JavaScript Object Notation (JSON) data.
3. The method of claim 1 , further comprising:
receiving, at the management system, a request from one of the plurality of users of the management system to consume the API.
4. The method of claim 1 , wherein the online platform comprises an API hub.
5. The method of claim 1 , further comprising:
automatically categorizing, at the management system, the API based on the user-generated parameters; and
storing the API in an API data store.
6. The method of claim 1 , further comprising:
after publishing the API via the online platform, providing, at the management system, a custom uniform resource locator (URL) for the API, wherein the URL is configured for user registration and authentication.
7. The method of claim 1 , further comprising:
generating, at the management system, customized documentation based on the user-generated parameters.
8. The method of claim 1 , wherein an add-on of the plurality of add-ons comprises an add-on including billing system functionality.
9. The method of claim 1 , wherein an add-on of the plurality of add-ons comprises an add-on for user authentication.
10. The method of claim 1 , wherein an add-on of the plurality of add-ons comprises an add-on for analytics associated with the use of the API.
11. The method of claim 1 , wherein an add-on of the plurality of add-ons comprises an add-on for a request limit check to the API, the request limit check indicating the number of requests allowed per a specified time period.
12. The method of claim 1 , wherein configuring the proxy comprises configuring one or more fields in the online platform.
13. The method of claim 1 , further comprising:
receiving, at the management system, a request to test the API within the online platform; and responsive to the request, testing the API within the online platform.
14. The method of claim 1 , wherein the parameters are received via an XML description file.
15. The method of claim 1 , further comprising:
receiving, at the management system, one or more contributions to the API from a third-party developer, wherein the third-party developer is different than an original developer of the API; and
publishing, at the management system, the updated API.
16. The method of claim 1 , wherein publishing the API via the online platform comprises:
providing, at the management system, a number of third-party developers that consume and contribute to the development of the API.
17. A method comprising:
receiving, at a management system, a text-based search query indicating API specific search criteria;
searching, at the management system, a categorized API data store using the API specific search criteria;
providing, at the management system, one or more APIs that match the API specific search criteria via an online platform;
providing, at the management system, a plurality of add-ons, wherein each add-on of the plurality of add-ons provides functionality in addition to the API;
responsive to providing the one or more APIs, receiving, at the management system, a selection of a first API of the one or more APIs that match the API specific search criteria;
responsive to providing the plurality of add-ons, receiving, at the management system, an indication of a selection of an add-on of the plurality of add-ons;
associating, at the management system, the add-on of the plurality of add-ons with the first API to provide functionality in addition to the first API;
responsive to receiving the selection of the first API, providing, at the management system, a plurality of automatically generated client libraries associated with the first API;
receiving, at the management system, a selection of a first client library of a plurality automatically generated client libraries associated with the first API;
determining, at the management system, whether an API consumer has indicated to test the first API;
testing the first API at the management system in response the determination of whether the API consumer has indicated to test the first API; and
providing, at the management system, the first API via the online platform.
18. The method of claim 17 , wherein providing the first API comprises:
providing the first automatically generated client library associated with the first API.
19. The method of claim 17 , wherein the text-based search inquiry indicates a type of an API, functionality of an API, or an API name.
20. The method of claim 17 , further comprising:
receiving, at the management system, a request to test the first API via a test console that is embedded in the online platform.
21. The method of claim 17 , further comprising:
responsive to receiving the selection of the first API, providing, at the management system, automatically generated documentation associated with that API.
22. The method of claim 17 , wherein providing the one or more APIs that match the text-based search inquiry via an online platform comprises:
providing categories associated with the one or more APIs; and
providing an indication of the number of third-party developers that contribute to the development of the API.
23. The method of claim 22 , further comprising:
providing the identities of the third-party developers that contribute to the development of the API.
24. The method of claim 22 , further comprising:
providing a forum indicating comments from the third-party developers that contribute to the development of the API.
25. The method of claim 17 , further comprising:
responsive to providing the first API via the online platform, updating, at the management system, third-party usage of the first API.
26. The method of claim 17 , wherein said each library was automatically generated in a different one of the following programming languages: Bash, Ruby, Python, PHP, Node.js, C#, Java, or Objective-C.
27. A management system comprising:
a network interface configured to receive user-generated parameters describing functionality associated with an application program interface (API) and a request to publish the API; and
a processing system configured to
configure a proxy for providing secure communications between an API server and a client,
automatically generate a plurality of client libraries based on the user-generated parameters,
provide a plurality of add-ons,
wherein each add-on of the plurality of add-ons provides functionality in addition to the API,
receive an indication of a selection of an add-on of the plurality of add-ons, and associate the add-on of the plurality of add-ons with the API,
wherein the client libraries are utilized by users of the management system to consume the API, and
wherein the processing system being configured to automatically generate the plurality of client libraries includes being configured to bring the client libraries into existence, and to publish the API via an online platform,
receive a request to test the API within the online platform, and
wherein responsive to the request, test the API within the online platform.
28. A management system comprising:
means for receiving a text-based search query indicating API specific search criteria;
means for searching a categorized API data store using the API specific search criteria;
means for providing one or more APIs that match the API specific search criteria via an online platform;
means for providing a plurality of add-ons, wherein each add-on of the plurality of add-ons provides functionality in addition an additional function to an API of the one or more APIs when the add-on associated with a respective API;
means for receiving a selection of a first API of the one or more APIs that match the API specific search criteria responsive to providing the one or more APIs;
means for receiving an indication of a selection of an add-on of the plurality of add-ons;
means for associating the add-on of the plurality of add-ons with the first API;
means for automatically generating a plurality of client libraries based on user-generated parameters associated with the first API, and based on a standard description format associated with the first API;
means for providing the plurality of client libraries associated with the first API responsive to receiving the selection of the first API;
means for receiving a selection of a first client library of the plurality of client libraries associated with the first API; and
means for providing the first API via the online platform
means for receiving a request to test the API within the online platform; and
responsive to the request, means for testing the API within the online platform.
29. A method comprising:
receiving, at a management system, user-generated parameters including any of an applications programming interface (API) name, an API tag, an API version, an public/private setting for an API, a description of an API, or a description of a version of an API;
configuring, at the management system, a proxy for providing secure communications between an API server and a client to enable the client to securely consume the API;
generating, at the management system, a plurality of client libraries based on the user-generated parameters, wherein the client libraries are utilized by users of the management system to consume the API, and wherein generating the plurality of client libraries includes bringing the client libraries into existence;
providing, by the management system, a selection of a plurality of add-ons to the client, wherein each add-on of the plurality of add-ons provides additional functionality to the API;
receiving, at the management system and from the client, an indication of a selection of a particular add-on of the plurality of add-ons;
associating, at the management system, the particular add-on with the API to provide additional functionality to the API;
receiving, at the management system, a request to publish the API; and
publishing, at the management system, the API via an online platform.,
receiving, at the management system, a request to test the API within the online platform; and
responsive to the request, testing the API within the online platform.
30. A method comprising:
receiving, at a management system, user-generated parameters describing functionality associated with an application program interface (API); configuring, at the management system, a proxy server configured to:
providing secure communications between an API server and a client;
receiving an HTTP request from a client;
executing a plurality of add-ons associated with the API, wherein the plurality of add-ons associated with the API are computer programmable code that extends functionalities of the proxy server;
forwarding the HTTP request to an API server that stores the API;
receiving, from the API, a response to the HTTP request; and
sending, the response to the HTTP request, to the client;
generating, at the management system, a plurality of client libraries based on the user-generated parameters, wherein the client libraries are utilized by users of the management system; receiving, at the management system, an indication of a selection of an add-on of the plurality of add-ons; associating, at the management system, the add-on of the plurality of add-ons with the API to provide functionality in addition to the API; publishing, at the management system, the API via an online platform, wherein the online platform comprises an API hub; receiving, at the management system, a request to test the API within the online platform; and responsive to the request, testing the API within the online platform.
31. The method of claim 30, wherein the API returns JavaScript Object Notation (JSON) data.
32. The method of claim 30, further comprising:
receiving, at the management system, a request from one of the plurality of users of the management system to consume the API.
33. The method of claim 30, further comprising:
automatically categorizing, at the management system, the API based on the user-generated parameters; and storing the API in an API data store.
34. The method of claim 30, further comprising:
after publishing the API via the online platform, providing, at the management system, a custom uniform resource locator (URL) for the API, wherein the URL is configured for user registration and authentication.
35. The method of claim 30, further comprising:
generating, at the management system, customized documentation based on the user-generated parameters.
36. The method of claim 30, wherein an add-on of the plurality of add-ons comprises an add-on including billing system functionality.
37. The method of claim 30, wherein an add-on of the plurality of add-ons comprises an add-on for user authentication.
38. The method of claim 30, wherein an add-on of the plurality of add-ons comprises an add-on for analytics associated with the use of the API.
39. The method of claim 30, wherein an add-on of the plurality of add-ons comprises an add-on for a request limit check to the API, the request limit check indicating the number of requests allowed per a specified time period.
40. The method of claim 30, wherein configuring the proxy comprises configuring one or more fields in the online platform.
41. The method of claim 30, wherein the parameters are received via an XML description file.
42. The method of claim 30, further comprising:
receiving, at the management system, one or more updates to the API from a third-party developer, wherein the third-party developer is different than an original developer of the API; and publishing, at the management system, the updated API.
43. The method of claim 30, wherein publishing the API via the online platform comprises:
providing, at the management system, a number of third-party developers that consume and contribute to the development of the API.
44. The method of claim 30, wherein the plurality of client libraries include at least one of: Bash, Ruby, Python, PHP, Node.js, C#, Java, or Objective-C.
45. A method implemented at a proxy server for executing requests directed at an Application Programming Interface (API), the method comprising:
receiving an HTTP request from a client; executing one or more installed add-ons associated with the API, wherein the one or more installed add-ons associated with the API are computer programmable code that extends functionalities of the proxy server; forwarding the HTTP request to an API server that stores the API; receiving, from the API, a response to the HTTP request; and sending, the response to the HTTP request, to the client
receiving a request to publish the API;
publishing the API via an online platform, wherein the online platform comprises an API hub;
receiving a request to test the API within the online platform; and
responsive to the request, testing the API within the online platform.
46. The method of claim 45, wherein the one or more installed add-ons associated with the API are executed prior to forwarding the HTTP request to the API server.
47. The method of claim 45, wherein the one or more installed add-ons associated with the API are executed subsequent to forwarding the HTTP request to the API server.
48. The method of claim 45, wherein the one or more installed add-ons associated with the API are executed both prior and subsequent to forwarding the HTTP request to the API server.
49. The method of claim 45, wherein the proxy server is a programmable HTTP communicatively coupled to the client and the API server.
50. The method of claim 45, wherein the proxy server is a programmable HTTPS communicatively coupled to the client and the API server.
51. The method of claim 45, wherein the proxy server is located remotely to the API server.
52. The method of claim 45, wherein the proxy server is installed locally to an infrastructure associated with a provider of the API server.
53. The method of claim 46, wherein the one or more installed add-ons include an add-on for user authentication that validates the client for blocking unauthorized requests.
54. The method of claim 48, wherein the one or more installed add-ons include an add-on for providing billing system functionality, wherein the billing system functionality is configured to:
prior to forwarding the HTTP request to the API server: determine whether the client is subscribed to a billing plan and upon determining that the client is not subscribed to a billing plan, notify the client with an error message and terminate a network connection with the client.
55. The method of claim 48, wherein the one or more installed add-ons include an add-on for providing billing system functionality, wherein the billing system functionality is configured to:
subsequent to forwarding the HTTP request to the API server: parsing the response to the HTTP request to determine a billing usage for the client.
56. The method of claim 45, wherein the one or more installed add-ons include an add-on for analytics associated with the use of the API.
57. The method of claim 45, wherein the one or more installed add-ons associated with the API are computer programmable code that extends functionalities of the proxy server by connecting the proxy with a third-party service.
58. The method of claim 45, wherein the one or more installed add-ons associated with the API are invoked at run time during the lifecycle of the API request.
59. The method of claim 45, wherein the one or more installed add-ons associated with the API is a separate application that is executed when one or more conditions are satisfied.
60. The method of claim 45, wherein the one or more installed add-ons associated with the API are included within the proxy server.
61. The method of claim 45, wherein the one or more installed add-ons associated with the API are computer programmable code that extends functionalities of the proxy server by formatting transformations from eXtensible Markup Language (XML) to JavaScript Object Notation (JSON).
62. The method of claim 58, wherein the one or more installed add-ons associated with the API are loaded from a file.
63. The method of claim 58, further comprising:
downloading, from a third-party server, the computer programmable code for the one or more installed add-ons associated with the API; and executing the downloaded computer programmable code in memory.
64. The method of claim 59, wherein the one or more installed add-ons associated with the API is a server that listens at a port of the server, wherein the one or more installed add-ons associated with the API is invoked by the proxy server.
65. The method of claim 59, wherein the one or more installed add-ons associated with the API is used in an environment where separate servers in connection with separate applications are utilized for scalability.
66. The method of claim 59, wherein the separate application processes a message queue that is populated by the proxy server.
67. The method of claim 60, wherein the one or more installed add-ons associated with the API are included within the proxy server in an environment wherein the proxy server is run on computers with high CPU.
68. The method of claim 45, wherein the proxy server includes a message broker module, wherein the one or more installed add-ons associated with the API are standalone add-ons, further comprising:
sending a message to the message broker module, wherein the message broker module notifies the standalone add-ons of the message, wherein the standalone add-ons process the message asynchronously for executing one or more actions.
69. The method of claim 68, further comprising:
upon receiving additional HTTP requests, adding, by the proxy server, supplementary standalone add-ons, wherein the standalone add-ons are in-memory processes or separate servers.
70. A method of operating an application having a microservice architecture comprising:
receiving inbound API traffic associated with a plurality of APIs by a proxy server; executing a set of common library functions by plugins installed on the proxy server, wherein the inbound API traffic is input to the set of common library functions; and communicating, by the proxy server to the plurality of APIs, a first output of the set of common library functions by the plugins included with the inbound API traffic.
71. The method of claim 70, wherein the plurality of APIs are in a distributed architecture that jointly performs an application function.
72. The method of claim 70, wherein the set of common library functions include any of:
authentication; user information identification; analytics; billing; or any combination of the above.
73. The method of claim 70, further comprising:
receiving, by the proxy server, outbound API traffic from the plurality of APIs; and communicating, by the proxy server to respective clients, the outbound API traffic.
74. The method of claim 73, further comprising:
executing the set of common library functions by plugins installed on the proxy server, wherein the outbound API traffic is input to the set of common library functions; and wherein said communication of the outbound API traffic further includes a second output of the set of common library functions by the plugins, the second output based on the outbound API traffic as input.
75. The method of claim 70, wherein the proxy server is architecturally positioned on a gateway node topologically in front of the plurality of APIs, wherein traffic to and from the plurality of APIs is routed through the gateway node.
76. The method of claim 70, wherein the inbound API traffic is a set of client requests.
77. The method of claim 70, wherein execution of the set of common library functions at the proxy server reduces the complexity of the infrastructure of the plurality of APIs by scaling the proxy server instead of the plurality of APIs.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.