@@ -79,7 +79,7 @@ Requests time out at 30 seconds.
...
@@ -79,7 +79,7 @@ Requests time out at 30 seconds.
## Breaking changes
## Breaking changes
The GitLab GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning) which means
The GitLab GraphQL API is [versionless](https://graphql.org/learn/best-practices/#versioning) which means
developers must familiarize themselves with our [deprecation cycle of breaking changes](#breaking-changes).
developers must familiarize themselves with our [Deprecation and Removal process](../api/graphql/index.md#deprecation-and-removal-process).
Breaking changes are:
Breaking changes are:
...
@@ -890,7 +890,7 @@ The main use case for this is one resolver to find all items, and another to
...
@@ -890,7 +890,7 @@ The main use case for this is one resolver to find all items, and another to
find one specific one. For this, we supply convenience methods:
find one specific one. For this, we supply convenience methods:
-`BaseResolver.single`, which constructs a new resolver that selects the first item.
-`BaseResolver.single`, which constructs a new resolver that selects the first item.
-`BaseResolver.last`, with constructs a resolver that selects the last item.
-`BaseResolver.last`, which constructs a resolver that selects the last item.
The correct singular type is inferred from the collection type, so we don't have
The correct singular type is inferred from the collection type, so we don't have
to define the `type` here.
to define the `type` here.
...
@@ -996,7 +996,7 @@ end
...
@@ -996,7 +996,7 @@ end
For this reason, whenever you call a resolver (mainly in tests - as framework
For this reason, whenever you call a resolver (mainly in tests - as framework
abstractions Resolvers should not be considered re-usable, finders are to be
abstractions Resolvers should not be considered re-usable, finders are to be
preferred), remember to call the `ready?` method and check the boolean flag
preferred), remember to call the `ready?` method and check the boolean flag
before calling `resolve`! An example can be seen in our [`GraphQLHelpers`](https://gitlab.com/gitlab-org/gitlab/-/blob/2d395f32d2efbb713f7bc861f96147a2a67e92f2/spec/support/helpers/graphql_helpers.rb#L20-27).
before calling `resolve`! An example can be seen in our [`GraphqlHelpers`](https://gitlab.com/gitlab-org/gitlab/-/blob/2d395f32d2efbb713f7bc861f96147a2a67e92f2/spec/support/helpers/graphql_helpers.rb#L20-27).
### Look-Ahead
### Look-Ahead
...
@@ -1184,7 +1184,7 @@ are returned as the result of the mutation.
...
@@ -1184,7 +1184,7 @@ are returned as the result of the mutation.
The service-oriented architecture in GitLab means that most mutations call a Create, Delete, or Update
The service-oriented architecture in GitLab means that most mutations call a Create, Delete, or Update
service, for example `UpdateMergeRequestService`.
service, for example `UpdateMergeRequestService`.
For Update mutations, a you might want to only update one aspect of an object, and thus only need a
For Update mutations, you might want to only update one aspect of an object, and thus only need a
_fine-grained_ mutation, for example `MergeRequest::SetWip`.
_fine-grained_ mutation, for example `MergeRequest::SetWip`.
It's acceptable to have both fine-grained mutations and coarse-grained mutations, but be aware
It's acceptable to have both fine-grained mutations and coarse-grained mutations, but be aware