Batching Self-Referencing REST Resources in Single Payload
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current approaches to performing CRUD operations on resource graphs in RESTful architectures require multiple transactions, increasing network request costs and complicating rollback processes, especially when resources are self-referencing.
Innovation Solution
Generating a single payload with metadata describing the relationships and operations for multiple resources, allowing all operations to be executed as a single transaction on the server, which reduces network request costs and simplifies rollback processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple individual REST requests are used to perform CRUD operations on self-referencing resources, then each operation can be performed independently, but the number of network requests increases and rollback becomes complicated
Solution Approach 1:
The patent combines multiple individual REST requests into a single batch request that processes multiple CRUD operations on self-referencing resources in one network transaction. The server receives a consolidated payload containing all operations (creates, updates, deletes) and their inter-resource references, executes them atomically, and returns a single response. This merging eliminates the need for multiple sequential network requests while maintaining transaction integrity through server-side transaction management.
2Ease of operation
If multiple transactions are used to handle CRUD operations on resource graphs, then each operation can be isolated, but the complexity of rollback processes increases
Solution Approach 1:
The patent merges multiple separate transactions into a single server-side transaction that handles all CRUD operations on self-referencing resources. The server maintains transactional integrity by processing all operations within one transaction context, automatically managing rollback if any operation fails. This approach simplifies error handling because the client only needs to manage a single transaction rather than coordinating multiple transactions and their respective rollbacks.
Solution Approach 2:
The server acts as an intermediary that receives the batch of CRUD operations with self-referencing resource identifiers, resolves the references, and executes all operations within a single transaction. The server mediates the complexity of transaction management by handling reference resolution and transaction coordination internally, freeing the client from implementing complex rollback logic across multiple transactions.
3Productivity
If local references are assigned to resources without URIs, then resources can be processed in batch, but metadata generation and reference resolution become necessary
Solution Approach 1:
The client performs preliminary actions by assigning local references to resources that lack URIs and generating metadata that describes these references and the intended CRUD operations. This preliminary preparation allows the server to efficiently process the batch by resolving local references to actual resource identifiers during transaction execution. The metadata acts as a blueprint that guides the server through the batch processing without requiring complex real-time reference resolution.
Data Source
AI summary
A computer implemented method, computer program product, and system for performing create, read, update, or delete operations on a plurality of resources in a client-server environment. In an embodiment, the computer implemented method includes the steps of identifying individual resources requiring operations to be performed, assigning local references for any resources to which a URI (Uniform Resource Identifier) has not been provided by the server, generating metadata describing the local references and operations to be performed, wrapping each individual resource with the metadata to provide a plurality of wrapped resources arranging the wrapped resources into a single payload, and transmitting the single payload to the server.


