Reactive API gateway
First Claim
1. A computer-implemented method for processing application programming interface (API) calls, the method comprising:
- establishing, by a first system of one or more computers, connections with a plurality of user agents at one or more client computers, wherein the first system is configured as a proxy between the plurality of user agents and a plurality of service subsystems that provide respective online services;
receiving, by the first system, an API call from a first user agent of the plurality of user agents to which the first system is connected, the first user agent associated with a first user;
routing, by the first system, the received API call to a particular service subsystem of the plurality of service subsystems, thereby causing the particular service subsystem (i) to perform an operation based on the received API call and (ii) to provide to a messaging system an event message that describes a result of the particular service subsystem'"'"'s performance of the operation based on the received API call,wherein the first system routes the received API call to the particular service subsystem based on identifying that the particular service subsystem is configured to handle API calls of a same type as the received API call, andwherein the messaging system is communicably coupled with each of the plurality of service subsystems and is configured to publish event messages received from each of the plurality of service subsystems including the particular service subsystem to a plurality of consumer systems including the first system, so that the plurality of consumer systems receive event messages generated by the plurality of service subsystems from the messaging system rather than directly from the plurality of service subsystems;
receiving, by the first system and from the messaging system rather than directly from the particular service subsystem, the event message that was generated by the particular service subsystem and that describes the result of the particular service subsystem'"'"'s performance of the operation based on the received API call, wherein the messaging system addresses the event message to the first user;
in response to receiving the event message that is addressed to the first user;
identifying, by the first system, one or more user agents associated with the first user; and
providing the event message from the first system to the one or more user agents associated with the first user.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for processing application programming interface (API) calls and event messages may include a gateway subsystem and an events hub. The gateway subsystem can route API calls submitted by user agents connected to the gateway subsystem to appropriate service subsystems. The events hub can receive event messages from at least some of the service subsystems and publish the received event messages for consumption by one or more consuming subsystems including the gateway subsystem. A first published event message may specify a first user and the the gateway subsystem can (i) determine every user agent that is associated with the first user and that is currently connected to the gateway subsystem and (ii) transmit information that represents the first published event message to every user agent that is determined to be associated with the first user and currently connected to the gateway subsystem.
-
Citations
22 Claims
-
1. A computer-implemented method for processing application programming interface (API) calls, the method comprising:
-
establishing, by a first system of one or more computers, connections with a plurality of user agents at one or more client computers, wherein the first system is configured as a proxy between the plurality of user agents and a plurality of service subsystems that provide respective online services; receiving, by the first system, an API call from a first user agent of the plurality of user agents to which the first system is connected, the first user agent associated with a first user; routing, by the first system, the received API call to a particular service subsystem of the plurality of service subsystems, thereby causing the particular service subsystem (i) to perform an operation based on the received API call and (ii) to provide to a messaging system an event message that describes a result of the particular service subsystem'"'"'s performance of the operation based on the received API call, wherein the first system routes the received API call to the particular service subsystem based on identifying that the particular service subsystem is configured to handle API calls of a same type as the received API call, and wherein the messaging system is communicably coupled with each of the plurality of service subsystems and is configured to publish event messages received from each of the plurality of service subsystems including the particular service subsystem to a plurality of consumer systems including the first system, so that the plurality of consumer systems receive event messages generated by the plurality of service subsystems from the messaging system rather than directly from the plurality of service subsystems; receiving, by the first system and from the messaging system rather than directly from the particular service subsystem, the event message that was generated by the particular service subsystem and that describes the result of the particular service subsystem'"'"'s performance of the operation based on the received API call, wherein the messaging system addresses the event message to the first user; in response to receiving the event message that is addressed to the first user; identifying, by the first system, one or more user agents associated with the first user; and providing the event message from the first system to the one or more user agents associated with the first user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 16, 17, 18, 20, 21, 22)
-
-
9. A computing system including one or more computers having memory and one or more processors, the computing system comprising:
-
a gateway subsystem, including one or more computers, configured to route application programming interface (API) calls submitted by user agents connected to the gateway subsystem to appropriate service subsystems of a plurality of service subsystems that provide respective online services to the user agents based on respective types of the API calls, wherein the gateway subsystem is arranged as a proxy between the user agents that are connected to the gateway subsystem and the plurality of service subsystems; and an events hub, including one or more computers, configured to receive event messages from at least some of the plurality of service subsystems and to publish the received event messages for consumption by one or more consuming subsystems including the gateway subsystem, such that the one or more consuming subsystems indirectly receive event messages from the at least some of the plurality of service subsystems through the events hub rather than directly from the at least some of the plurality of service subsystems, wherein at least a first published event message that is consumed by the gateway subsystem identifies a first user, wherein the at least the first published event message is generated by one of the plurality of service subsystems to describe a result of the service subsystem'"'"'s performance of an operation responsive to an API call that was routed to the service subsystem from the gateway subsystem; and wherein the gateway subsystem is further configured, in response to consuming the first published event message that identifies the first user; (i) to determine every user agent that is associated with the first user and that is currently connected to the gateway subsystem, and (ii) to transmit information that represents the first published event message to every user agent that is determined to be associated with the first user and currently connected to the gateway subsystem. - View Dependent Claims (10, 11, 12)
-
-
13. A gateway system for processing application programming interface (API) calls, comprising:
-
one or more processors; and one or more computer-readable media encoded with instructions that, when executed by the one or more processors, cause the one or more processors to perform operations comprising; establishing, by the gateway system, connections with a plurality of user agents at one or more client computers, wherein the gateway system is configured as a proxy between the plurality of user agents and a plurality of service subsystems that provide respective online services; receiving, by the gateway system, an API call from a first user agent of the plurality of user agents to which the gateway system is connected, the first user agent associated with a first user; routing, by the gateway system, the received API call to a particular service subsystem of the plurality of service subsystems, thereby causing the particular service subsystem (i) perform an operation based on the received API call and (ii) to provide to a messaging system an event message that describes a result of the particular service subsystem'"'"'s performance of the operation based on the received API call, wherein the gateway system routes the received API call to the particular service subsystem based on identifying that the particular service subsystem is configured to handle API calls of a same type as the received API call, and wherein the messaging system is communicably coupled with each of the plurality of service subsystems and is configured to publish event messages received from each of the plurality of service subsystems including the particular service subsystem to a plurality of consumer systems including the gateway system, so that the plurality of consumer systems receive event messages generated by the plurality of service subsystems from the messaging system rather than directly from the plurality of service subsystems; receiving, by the gateway system and from the messaging system rather than directly from the particular service subsystem, the event message that was generated by the particular service subsystem and that describes the result of the particular service subsystem'"'"'s performance of the operation based on the received API call, wherein the messaging system addresses the event message to the first user; in response to receiving the event message that is addressed to the first user; identifying, by the gateway system, one or more user agents associated with the first user; and providing the event message from the gateway system to the one or more user agents associated with the first user. - View Dependent Claims (14, 15, 19)
-
Specification