IP Library › Granted Patent US 12,321,793
Granted Patent B2
US 12,321,793 · App. 18/654,464 · Granted Jun 3, 2025

Component-aware rest API routing gateway

Inventor: Andrew MacGaffey (Carol Stream, IL)
Assignee: MetaFluent, LLC
G06F9/54G06F16/955
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,321,793
App. No.
18/654,464
Filed
May 3, 2024
Granted
Jun 3, 2025
Kind
B2
Art Unit
2194
USPC
719/328
Abstract

Embodiments perform routing of client provided application programming interface (“API”) requests via an API gateway by receiving. at the API gateway, a POST registration request from a proxy API gateway, where the POST registration request is in response to a newly registering of a remote API endpoint at a remote proxy API registry. Embodiments create, at the API gateway, a first proxy API endpoint that represents the registered remote API endpoint and registers, at the API gateway, the first proxy API endpoint with an API registry. A first resource registers a first API with a remote API registry as a local API endpoint and the remote API registry groups a plurality of local API endpoints by API type and API version. The first proxy API endpoint corresponds to the first API.

Claims (67)

1. A method of routing client provided application programming interface (API) requests via an API gateway, the method comprising:

receiving at the API gateway, a POST registration request from a proxy API gateway, wherein the POST registration request is in response to a newly registering of a remote API endpoint at a remote proxy API registry;

creating, at the API gateway, a first proxy API endpoint that represents the registered remote API endpoint;

registering, at the API gateway, the first proxy API endpoint with an API registry;

wherein a first resource registers a first API with a remote API registry as a local API endpoint and the remote API registry groups a plurality of local API endpoints by API type and API version;

wherein the first proxy API endpoint corresponds to the first API;

receiving, by the API gateway, an API request for the first API from a client for a resource from one or more endpoints of a plurality of endpoints, wherein each of the plurality of endpoints each comprise an instance of the first API, is remote from the API gateway, is registered with the API gateway using a unique identifier, and is represented by a proxy in the API gateway, the API request comprising a uniform resource identifier (URI), wherein the URI comprises an expression; and

selecting multiple of the plurality of endpoints based on the expression and routing, by the API gateway, the API request to the selected endpoints, each selected endpoint having the same particular API type and API version.

2. The method of claim 1 , further comprising:

determining whether the URI provided by the client comprises the expression provided by the client, wherein the expression comprises one or more predicates, or a wild-card, or whether the URI comprises a Universally Unique ID (UUID) specifying a single unique endpoint.

3. The method of claim 2 , further comprising:

receiving, by the API gateway, a plurality of responses to the request from a plurality of the selected endpoints; and

aggregating, by the API gateway, the plurality of responses into an array of responses.

4. The method of claim 3 , wherein the array of responses comprises a JavaScript Object Notation (JSON) array.

5. The method of claim 1 , further comprising:

when creating the first proxy API endpoint, the API registry requests from the remote API registry a copy of an API document that describes the registered remote API endpoint;

associating that API document with a UUID query path for the first proxy API endpoint and with the UUID query path for all subsequently registered proxy API endpoints having a same API type and API version;

creating an arrayified version of the API document and associating the arrayified version with an expression query path for the API type and API version.

6. The method of claim 5 , further comprising:

receiving from a client a uniform resource locator (URL) that identifies the API document as a requested resource and comprises an wildcard path;

returning, by the API registry, an encoded copy of the arrayified version of the API document.

7. The method of claim 5 , further comprising:

receiving from a client a uniform resource locator (URL) that includes a first UUID specifying a first unique endpoint as a requested resource;

returning, by the API registry, an encoded copy of the original API document.

8. The method of claim 1 , wherein multiple instances of the first API are located in a single business process.

9. The method of claim 1 , further comprising:

receiving a REST POST message comprising a POST wildcard expression, the POST message comprising an operation;

resolving the POST wildcard expression to identify a plurality of POST API endpoints; and

performing the operation at each of the plurality of POST API endpoints.

10. The method of claim 1 , wherein the resource is an API document, wherein the API document defines return values of GET operations as arrays.

11. The method of claim 1 , wherein the resource is an API document representing the API as defined by a corresponding endpoint.

12. The method of claim 1 , wherein each endpoint comprises a software component that provides a business application function.

13. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the processors to route client provided application programming interface (API) requests via an API gateway, the routing comprising:

receiving at the API gateway, a POST registration request from a proxy API gateway, wherein the POST registration request is in response to a newly registering of a remote API endpoint at a remote proxy API registry;

creating, at the API gateway, a first proxy API endpoint that represents the registered remote API endpoint;

registering, at the API gateway, the first proxy API endpoint with an API registry;

wherein a first resource registers a first API with a remote API registry as a local API endpoint and the remote API registry groups a plurality of local API endpoints by API type and API version;

wherein the first proxy API endpoint corresponds to the first API;

receiving, by the API gateway, an API request for the first API from a client for a resource from one or more endpoints of a plurality of endpoints, wherein each of the plurality of endpoints each comprise an instance of the first API, is remote from the API gateway, is registered with the API gateway using a unique identifier, and is represented by a proxy in the API gateway, the API request comprising a uniform resource identifier (URI), wherein the URI comprises an expression; and

selecting multiple of the plurality of endpoints based on the expression and routing, by the API gateway, the API request to the selected endpoints, each selected endpoint having the same particular API type and API version.

14. The computer-readable medium of claim 13 , the routing further comprising:

determining whether the URI provided by the client comprises the expression provided by the client, wherein the expression comprises one or more predicates, or a wild-card, or whether the URI comprises a Universally Unique ID (UUID) specifying a single unique endpoint.

15. The computer-readable medium of claim 14 , the routing further comprising:

receiving, by the API gateway, a plurality of responses to the request from a plurality of the selected endpoints; and

aggregating, by the API gateway, the plurality of responses into an array of responses.

16. The computer-readable medium of claim 13 , the routing further comprising:

when creating the first proxy API endpoint, the API registry requests from the remote API registry a copy of an API document that describes the registered remote API endpoint;

associating that API document with a UUID query path for the first proxy API endpoint and with the UUID query path for all subsequently registered proxy API endpoints having a same API type and API version;

creating an arrayified version of the API document and associating the arrayified version with an expression query path for the API type and API version.

17. An application programming interface (API) gateway comprising:

one or more processors that execute instructions to perform client provided routing application programming interface (API) requests via an API gateway, the routing comprising:

receiving at the API gateway, a POST registration request from a proxy API gateway, wherein the POST registration request is in response to a newly registering of a remote API endpoint at a remote proxy API registry;

creating, at the API gateway, a first proxy API endpoint that represents the registered remote API endpoint;

registering, at the API gateway, the first proxy API endpoint with an API registry;

wherein a first resource registers a first API with a remote API registry as a local API endpoint and the remote API registry groups a plurality of local API endpoints by API type and API version;

wherein the first proxy API endpoint corresponds to the first API;

receiving, by the API gateway, an API request for the first API from a client for a resource from one or more endpoints of a plurality of endpoints, wherein each of the plurality of endpoints each comprise an instance of the first API, is remote from the API gateway, is registered with the API gateway using a unique identifier, and is represented by a proxy in the API gateway, the API request comprising a uniform resource identifier (URI), wherein the URI comprises an expression; and

selecting multiple of the plurality of endpoints based on the expression and routing, by the API gateway, the API request to the selected endpoints, each selected endpoint having the same particular API type and API version.

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

determining whether the URI provided by the client comprises the expression provided by the client, wherein the expression comprises one or more predicates, or a wild-card, or whether the URI comprises a Universally Unique ID (UUID) specifying a single unique endpoint.

19. The API gateway of claim 18 , the routing further comprising:

receiving, by the API gateway, a plurality of responses to the request from a plurality of the selected endpoints;

aggregating, by the API gateway, the plurality of responses into an array of responses.

20. The API gateway of claim 17 , the routing further comprising:

when creating the first proxy API endpoint, the API registry requests from the remote API registry a copy of an API document that describes the registered remote API endpoint;

associating that API document with a UUID query path for the first proxy API endpoint and with the UUID query path for all subsequently registered proxy API endpoints having a same API type and API version;

creating an arrayified version of the API document and associating the arrayified version with an expression query path for the API type and API version.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2024
From: MACGAFFEY, ANDREW
To: METAFLUENT, LLC
Reel/Frame 067308/0204 →
Continuity (3)
Continuation 17725131 · Apr 20, 2022
Provisional Application 63176968 · Apr 20, 2021
Related Publication 20240281307A1 · Aug 22, 2024
References Cited (39)
US 6434637B1 · D'Errico · 2002 [cited by examiner]
US 10769000B1 · Plunk et al. · 2020 [cited by applicant]
US 10878270B1 · Cao et al. · 2020 [cited by applicant]
US 10911540B1 · Gunasekaran et al. · 2021 [cited by applicant]
US 10917401B1 · Mantin et al. · 2021 [cited by applicant]
US 11138249B1 · Tosik et al. · 2021 [cited by applicant]
US 11329936B1 · Cao et al. · 2022 [cited by applicant]
US 20070077922A1 · Kim et al. · 2007 [cited by applicant]
US 20100262367A1 · Riggins et al. · 2010 [cited by applicant]
US 20120233668A1 · Leafe · 2012 [cited by examiner]
US 20120264427A1 · Adatia · 2012 [cited by examiner]
US 20140059226A1 · Messerli · 2014 [cited by examiner]
US 20140245141A1 · Yeh · 2014 [cited by examiner]
US 20140355049A1 · Hadano · 2014 [cited by examiner]
US 20150058444A1 · Willmann · 2015 [cited by examiner]
US 20150089605A1 · Trifa et al. · 2015 [cited by applicant]
US 20170005515A1 · Sanders et al. · 2017 [cited by applicant]
US 20170019455A1 · Tiwari · 2017 [cited by examiner]
US 20170201585A1 · Doraiswamy · 2017 [cited by examiner]
US 20170228711A1 · Chawla et al. · 2017 [cited by applicant]
US 20180115595A1 · Krishnan · 2018 [cited by examiner]
US 20180276041A1 · Bansal et al. · 2018 [cited by applicant]
US 20180324204A1 · McClory · 2018 [cited by examiner]
US 20180365190A1 · Poitrey · 2018 [cited by applicant]
US 20190036878A1 · Morrison · 2019 [cited by applicant]
US 20190149365A1 · Chatterjee et al. · 2019 [cited by applicant]
US 20190230063A1 · McCready · 2019 [cited by examiner]
US 20190340376A1 · Fleck · 2019 [cited by examiner]
US 20200089547A1 · Rempel · 2020 [cited by examiner]
US 20200244767A1 · Whang · 2020 [cited by applicant]
US 20200344124A1 · Christober · 2020 [cited by applicant]
US 20210133834A1 · Savilia · 2021 [cited by examiner]
CN 101547206B · 2012 [cited by applicant]
DE 60121605 · 2006 [cited by applicant]
WO WO2013177246A1 · 2013 [cited by examiner]
Erik Berdonces Bonelo, OpenID Connect Client Registration API for Federated Cloud Platforms. (Year: 2016). [cited by examiner]
Anton Fagerberg, Optimising clients with API gateways (Year: 2015). [cited by examiner]
Mathijssen et al, “Identification of Practices and Capabilities in API Management: A Systematic Literature Review”, Utrecht University Dept of Information Sciences, 28 pgs, 2020. [cited by applicant]
Sharma et al., “A Framework for Automatic Categorization of Social Data Into Medical Domains”, OEEE Transaction of Computational Social Systems, vol. 7, No. 1, Feb. 2020. [cited by applicant]