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

NameDescription
operationsA list of mutation operations to perform
collection_relationshipsAny relationships between collections involved in the mutation request
request_argumentsAny 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