Mutations
The mutation endpoint accepts a mutation request, containing a collection of mutation operations to be performed transactionally in the context the data source, and returns a response containing a result for each operation.
The structure and requirements for specific fields listed below will be covered in subsequent chapters.
Request
POST /mutation
Request
See MutationRequest
Request Fields
Name | Description |
---|---|
operations | A list of mutation operations to perform |
collection_relationships | Any relationships between collections involved in the mutation request |
request_arguments | Any arguments to be passed to the mutation request |
Mutation Operations
Each operation is described by a MutationOperation
structure, which can be one of several types. However, currently procedures are the only supported operation type.
Request-level Arguments
Request-level arguments are specified in the request_arguments
section of a MutationRequest
. The set of provided arguments should be compatible with the list of arguments specified in the mutation_arguments
section of the schema response.
Multiple Operations
If the mutation.transactional
capability is enabled, then the caller may provide multiple operations in a single request.
Otherwise, the caller must provide exactly one operation.
The intent is that multiple operations ought to be performed together in a single transaction.
That is, they should all succeed, or all fail together. If any operation fails, then a single ErrorResponse
should capture
the failure, and none of the operations should effect any changes to the data source.
Response
See MutationResponse
Requirements
- The
operation_results
field of theMutationResponse
should contain oneMutationOperationResults
structure for each requested operation in theMutationRequest
.