DSL Graph Schema Stitching for API Data Retrieval
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems for managing and enhancing external APIs and SDKs using GraphQL are underdeveloped, lacking efficient methods for defining and generating schemas, which hinders effective data retrieval and manipulation.
Innovation Solution
The method involves automatically generating combined schemas using a domain-specific language (DSL) to integrate multiple graph data structures, allowing clients to specify precisely what data is needed, reducing data over-fetching and improving API management by defining schema blueprint data, field transformations, and authorization scopes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If GraphQL is used for data querying, then clients can define precise data structure requirements, but the system lacks efficient methods for defining and generating schemas
Solution Approach 1:
The schema definition is segmented into reusable template components that can be independently defined and combined. This allows complex GraphQL schemas to be built from modular, manageable units rather than defining everything from scratch, reducing the complexity burden while maintaining precise data structure control.
Solution Approach 2:
An automated schema generation system acts as an intermediary between the template definitions and the final GraphQL schema. This intermediary automatically processes template inputs, resolves dependencies, and generates the complete schema, eliminating the need for manual schema construction and reducing operational complexity.
2Adaptability or versatility
If multiple graph data structures are integrated manually, then data retrieval can be customized, but network latency and costs increase due to multiple requests
Solution Approach 1:
Multiple graph data structures are merged into a single unified GraphQL schema that can be queried through one endpoint. This consolidation allows clients to retrieve data from multiple sources in a single request, eliminating the need for multiple sequential requests and reducing network latency while preserving full data customization capability.
Solution Approach 2:
The system performs preliminary integration of multiple graph data structures into a unified schema before clients make requests. This advance preparation ensures that all necessary data structures are already connected and ready, allowing clients to make single, efficient requests without incurring the latency of multiple separate requests.
3Reliability
If comprehensive data is returned from servers, then clients receive complete information, but excessively large amounts of data are transmitted
Solution Approach 1:
The GraphQL schema enables different parts of the data structure to have different levels of detail and completeness based on local requirements. Clients can specify exactly which fields and nested structures they need, allowing the server to return complete information for requested elements while omitting unnecessary data, thus maintaining reliability for needed data while reducing overall transmission volume.
4Adaptability or versatility
If distributed teams collaborate on API development, then system functionality increases, but coordination and integration become more complex
Solution Approach 1:
The schema definition process is segmented into independent, team-owned components that can be developed, validated, and maintained separately. This segmentation allows distributed teams to work on different parts of the schema simultaneously without conflicts, increasing overall system functionality while reducing coordination complexity through clear ownership boundaries.
Solution Approach 2:
The template-based schema system provides universal interfaces and conventions that work across different teams and data structures. This universality allows teams to collaborate using common patterns and methodologies, reducing the complexity of integration and coordination while enabling the system to accumulate diverse functionality from multiple teams.
Data Source
AI summary
In an embodiment, a method comprises creating and storing, at a client computer, schema blueprint data comprising a plurality of different service definitions, each of the service definitions composed in a domain specific language (DSL), each service definition comprising identification of an endpoint and one or more schema definition language elements; generating, based on the schema blueprint data, a combined schema in a graph query language processing system, the combined schema indicating which querying operations and mutating operations that a graph endpoint of the graph query language processing system can execute, the generating the combined schema comprising: automatically mapping a first resource of a first plurality of digitally stored resources from the endpoint of a first service definition of the plurality of service definitions to a first field in the combined schema; automatically mapping a second resource of a second plurality of digitally stored resources from the endpoint of a second service definition of the plurality of service definitions to a second field in the combined schema; generating and submitting a query to the graph endpoint based on the combined schema that causes, by traversing the mappings, retrieving the first resource from the endpoint of the first service definition and the second resource from the endpoint of the second service definition.


