# US 12,001,894 B2 · Component-aware rest API routing gateway

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,894 B2
- Document ID: US12001894B2
- Status: Granted
- Kind: B2
- Application number: 17/725,131
- Filed: 2022-04-20
- Published: 2023-04-06
- Granted: 2024-06-04
- Earliest claimed: 2021-04-20
- Assignees: MetaFluent, LLC
- Applicants: MetaFluent, LLC
- Inventors: Andrew MacGaffey
- Web page: https://patentgrep.com/patent/US12001894B2

## CPC

- G06F 9/54: Interprogram communication
- H04L 67/63: Routing a service request depending on the request content or context
- G06F 16/955: using information identifiers, e.g. uniform resource locators [URL]
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Embodiments perform gateway routing by receiving an application programming interface (“API”) request for an API from a client for a resource from a first endpoint, wherein a plurality of endpoints each include an instance of the API and each endpoint is associated with a unique identifier. The first API request includes a path that specifies a single unique identifier. Embodiments route the first API request to the first endpoint associated with the single unique identifier.

## Claims

### Claim 1

A method of routing client provided application programming interface (API) requests via an API gateway, the method comprising:
receiving, by the API gateway, an API request for an 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 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”);
determining whether the URI provided by the client comprises an 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;
when the URI comprises the expression, 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;
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; and
when the URI comprises the UUID, routing, by the API gateway, the API request to the single unique endpoint.

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 1)

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

### Claim 8

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, by the API gateway, an API request for an 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 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”);
determining whether the URI provided by the client comprises an 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;
when the URI comprises the expression, 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;
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; and
when the URI comprises the UUID, routing, by the API gateway, the API request to the single unique endpoint.

### Claim 9 (depends on 8)

The computer-readable medium of claim 8, the routing further comprising:
wherein the array of responses comprises a JavaScript Object Notation (JSON) array.

### Claim 10 (depends on 8)

The computer-readable medium of claim 8, wherein multiple instances of the API are located in a single business process.

### Claim 11 (depends on 8)

The computer-readable medium of claim 8, 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.

### Claim 12 (depends on 8)

The computer-readable medium of claim 8, wherein the resource is an API document, wherein the API document defines return values of GET operations as arrays.

### Claim 13 (depends on 8)

The computer-readable medium of claim 8, wherein the resource is an API document representing the API as defined by a corresponding endpoint.

### Claim 14 (depends on 8)

The computer-readable medium of claim 8, wherein each endpoint comprises a software component that provides a business application function.

### Claim 15

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, by the API gateway, an API request for an 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 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”);
determining whether the URI provided by the client comprises an 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;
when the URI comprises the expression, 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;
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; and
when the URI comprises the UUID, routing, by the API gateway, the API request to the single unique endpoint.

### Claim 16 (depends on 15)

The gateway of claim 15
wherein the array of responses comprises a JavaScript Object Notation (JSON) array.

### Claim 17 (depends on 15)

The gateway of claim 15, 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.

### Claim 18 (depends on 15)

The gateway of claim 15, wherein the resource is an API document, wherein the API document defines return values of GET operations as arrays.

### Claim 19 (depends on 15)

The gateway of claim 15, wherein the resource is an API document representing the API as defined by a corresponding endpoint.

### Claim 20 (depends on 15)

The gateway of claim 15, wherein each endpoint comprises a software component that provides a business application function.
