US 11,886,394 B2
Composable query language gateway routing protocol
Wojciech Julian Trocki, Waterford, MI (US); and Hiram Remigio Chirino, Tallahassee, FL (US)
Assigned to Red Hat, Inc., Raleigh, NC (US)
Filed by RED HAT, INC., Raleigh, NC (US)
Filed on Aug. 25, 2020, as Appl. No. 17/001,790.
Prior Publication US 2022/0067002 A1, Mar. 3, 2022
Int. Cl. G06F 16/245 (2019.01); G06F 16/21 (2019.01); G06F 16/24 (2019.01); H04L 67/00 (2022.01); G06F 16/22 (2019.01); H04L 67/1097 (2022.01); G06F 9/54 (2006.01); G06F 16/2458 (2019.01)
CPC G06F 16/213 (2019.01) [G06F 9/547 (2013.01); G06F 16/2255 (2019.01); G06F 16/2471 (2019.01); H04L 67/1097 (2013.01)] 19 Claims
OG exemplary drawing
 
1. A method comprising:
receiving, at a client device, a GraphQL query request for data comprising a plurality of query types associated with a plurality of services executed by a plurality of host systems;
identifying, by a processing device of the client device, the plurality of query types associated with the GraphQL query request;
sending the GraphQL query request and the plurality of query types identified as associated with the GraphQL query request from the client device to a gateway system and receiving at the client device a corresponding query routing data structure that identifies each service associated with each query type and routing information for each service, wherein the gateway system generates the query routing data structure by receiving a GraphQL service schema from each service and merging the GraphQL service schemas into a composable GraphQL query language schema;
transmitting the GraphQL query request from the client device to each of the plurality of services identified using the query routing data structure, wherein transmitting the GraphQL query request from the client device to each of the plurality of services comprises transmitting GraphQL queries to GraphQL application programming interfaces (APIs) associated with each of the plurality of services;
receiving query results from each of the plurality of services responsive to the GraphQL query request; and
aggregating the query results received from each of the plurality of services for presentation to a user.