GraphQL to HTTP Translation via Parameter Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GraphQL systems face inefficiencies when accessing REST APIs due to excessive API requests and round trips to databases, particularly for nested queries, which consume significant computing resources and network bandwidth.

Innovation Solution

A method is introduced to translate GraphQL queries into efficient HTTP requests by creating a parameter mapping that maps resources to HTTP URL parameters, allowing a single request to be submitted to a server, thereby minimizing REST API requests and round trips to the database.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If GraphQL queries are used to access REST APIs with nested resources, then data retrieval completeness is improved, but the number of API requests and round trips increases significantly

Engineering Contradiction:
Improvedata retrieval completenessVSAvoidAPI request efficiency
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent merges multiple nested GraphQL queries into a single HTTP request by flattening the nested resource structure. Instead of making separate API calls for each nested resource level, the system combines all resource requests into one unified HTTP call that retrieves parent and child resources simultaneously, thereby reducing the number of round trips while maintaining complete data retrieval.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the GraphQL query translation process into distinct phases: parsing the GraphQL query to identify nested resources, flattening the nested structure into a hierarchical resource list, and generating the corresponding HTTP request. This segmentation allows the system to efficiently handle complex nested queries by breaking them down into manageable transformation steps.

Inventive Principle:
Principle #1Segmentation

2Loss of information

If multiple API calls are made to retrieve nested resources, then complete data is obtained, but computing resources and network bandwidth are consumed excessively

Engineering Contradiction:
Improvedata completenessVSAvoidcomputing resource consumption
Core Design Contradiction:
Loss of informationVSLoss of energy

Solution Approach 1:

The patent combines multiple separate API calls into a single HTTP request by flattening the nested resource structure. This merging approach retrieves all required parent and child resources in one network transaction, significantly reducing computing resource consumption and network bandwidth usage while ensuring complete data retrieval.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If GraphQL queries are translated directly to REST API calls without optimization, then query flexibility is maintained, but performance degrades due to excessive round trips

Engineering Contradiction:
Improvequery flexibilityVSAvoidrequest performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces an intermediary translation layer that converts GraphQL queries into optimized HTTP requests. This mediator parses the flexible GraphQL query structure, identifies nested resources, flattens the hierarchy, and generates corresponding HTTP requests with appropriate parameters. The intermediary maintains query flexibility by accurately translating GraphQL's adaptive structure while improving performance through optimized request generation.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Loss of information

If nested GraphQL queries are executed, then comprehensive data retrieval is achieved, but the number of database round trips increases

Engineering Contradiction:
Improvedata retrieval completenessVSAvoiddatabase round trip time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The patent merges multiple database round trips into a single request by flattening the nested GraphQL query structure. The system identifies all parent and child resources required by the query, constructs a unified HTTP request that retrieves all necessary data in one operation, and eliminates the sequential round trips that would otherwise occur when fetching nested resources level by level.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11055282B1Translating graph queries into efficient network protocol requests
Publication Date: 2021.07.06 ATLASSIAN US INC
  • US11055282B1 patent drawing
  • US11055282B1 patent drawing
  • US11055282B1 patent drawing

AI summary

In an embodiment, a method comprises creating and storing a parameter mapping that maps a plurality of resources to a plurality of HTTP URL parameters; receiving, at a client computer, a query comprising a request to access one or more resources of the plurality of resources; using the parameter mapping, determining one or more HTTP URL parameters of the plurality of HTTP URL parameters that are mapped to the one or more resources of the plurality of resources specified in the query; generating a HTTP URL by combining the one or more HTTP URL parameters; submitting a request to a server computer based on the HTTP URL that causes the server computer to retrieve the one or more resources of the plurality of resources.