[HotChocolate] Rework fetching data docs chapter#9692
Conversation
There was a problem hiding this comment.
Pull request overview
This PR restructures the Hot Chocolate v16 documentation to separate resolver fundamentals into a new Resolvers section, reorganize Fetching Data into batching/integrations sub-sections, and refresh multiple chapters and cross-links to match the new IA.
Changes:
- Added new
resolvers/*docs (introduction, DI, errors, field middleware) and updated many pages to link to the new structure. - Reworked Fetching Data docs (notably pagination/projections) and introduced
fetching-data/batching/*pages for DataLoader + batch resolvers. - Updated
docs.jsonand the docs navigation component to support deeper (3-level) navigation trees.
Reviewed changes
Copilot reviewed 56 out of 56 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| website/src/docs/hotchocolate/v16/server/options.md | Minor copy/link adjustments in options reference. |
| website/src/docs/hotchocolate/v16/server/interceptors.md | Updated “Next steps” link to DI page under the new resolvers section. |
| website/src/docs/hotchocolate/v16/server/instrumentation.md | Removed version-specific phrasing in ActivityEnricher note. |
| website/src/docs/hotchocolate/v16/server/index.md | Updated DI link + removed version-specific phrasing in overview copy. |
| website/src/docs/hotchocolate/v16/server/http-transport.md | Removed version-specific phrasing about default incremental delivery format. |
| website/src/docs/hotchocolate/v16/server/global-state.md | Updated DI link to new resolvers section. |
| website/src/docs/hotchocolate/v16/server/files.md | Updated wording around UploadValueNode guidance. |
| website/src/docs/hotchocolate/v16/server/endpoints.md | Moved Trusted Documents links to performance section. |
| website/src/docs/hotchocolate/v16/server/command-line.md | Updated CLI wording and removed version-specific phrasing. |
| website/src/docs/hotchocolate/v16/security/cost-analysis.md | Updated “query depth” pointer to “request limits”. |
| website/src/docs/hotchocolate/v16/resolvers/index.md | New resolvers introduction page (resolver tree, args, DI, parent access). |
| website/src/docs/hotchocolate/v16/resolvers/field-middleware.md | New field middleware chapter (delegate/class/attribute middleware). |
| website/src/docs/hotchocolate/v16/resolvers/errors.md | New resolver error handling chapter (exceptions, filters, GraphQLException). |
| website/src/docs/hotchocolate/v16/resolvers/dependency-injection.md | Reworked DI chapter (implicit injection, scoping, keyed services, switching provider). |
| website/src/docs/hotchocolate/v16/index.md | Updated top-level v16 landing page links to new structure. |
| website/src/docs/hotchocolate/v16/guides/testing.md | Updated CookieCrumble reference link. |
| website/src/docs/hotchocolate/v16/guides/public-api.md | Removed version-specific wording about batching defaults. |
| website/src/docs/hotchocolate/v16/guides/performance.md | Updated DataLoader links + removed version-specific phrasing. |
| website/src/docs/hotchocolate/v16/guides/federation.md | Updated DataLoader and Resolvers links. |
| website/src/docs/hotchocolate/v16/guides/error-handling.md | Updated schema basics + DataLoader links. |
| website/src/docs/hotchocolate/v16/guides/dynamic-schemas.md | Updated Extending Types link to new object-types destination. |
| website/src/docs/hotchocolate/v16/get-started-with-graphql-in-net-core.md | Updated DataLoader and EF integration links. |
| website/src/docs/hotchocolate/v16/fusion/index.md | Removed placeholder Fusion page under Hot Chocolate v16. |
| website/src/docs/hotchocolate/v16/fetching-data/spatial-data.md | Updated EF integration link path. |
| website/src/docs/hotchocolate/v16/fetching-data/sorting.md | Removed version-specific phrasing around NullOrdering. |
| website/src/docs/hotchocolate/v16/fetching-data/resolvers.md | Removed old resolvers page (migrated into new resolvers section). |
| website/src/docs/hotchocolate/v16/fetching-data/projections.md | Major rewrite to the QueryContext<T> pattern + updated integration links. |
| website/src/docs/hotchocolate/v16/fetching-data/pagination.md | Major rewrite to Page<T>/PageConnection<T> and relative cursor coverage. |
| website/src/docs/hotchocolate/v16/fetching-data/integrations/mongodb.md | Updated description + fixed “Executable” cross-link target. |
| website/src/docs/hotchocolate/v16/fetching-data/integrations/marten.md | Updated description to remove version-specific wording. |
| website/src/docs/hotchocolate/v16/fetching-data/integrations/index.md | Updated description + corrected “Next steps” integration links. |
| website/src/docs/hotchocolate/v16/fetching-data/integrations/extending-filtering.md | Updated description + removed visitor doc link and adjusted MongoDB link. |
| website/src/docs/hotchocolate/v16/fetching-data/integrations/entity-framework.md | Updated description + moved DI references to new resolvers DI page. |
| website/src/docs/hotchocolate/v16/fetching-data/index.md | Rewritten overview focused on data middleware + new batching/integrations pointers. |
| website/src/docs/hotchocolate/v16/fetching-data/fetching-from-rest.md | Removed old REST fetching page. |
| website/src/docs/hotchocolate/v16/fetching-data/fetching-from-databases.md | Removed old DB fetching page. |
| website/src/docs/hotchocolate/v16/fetching-data/errors.md | Removed old error page (moved to resolvers section). |
| website/src/docs/hotchocolate/v16/fetching-data/batching/index.md | New batching overview placeholder. |
| website/src/docs/hotchocolate/v16/fetching-data/batching/dataloader.md | Updated DataLoader page location/content and removed embedded batch resolver section. |
| website/src/docs/hotchocolate/v16/fetching-data/batching/batch-resolver.md | New batch resolvers page. |
| website/src/docs/hotchocolate/v16/execution-engine/index.md | Removed execution engine overview page. |
| website/src/docs/hotchocolate/v16/execution-engine/field-middleware.md | Removed old execution-engine field middleware page (superseded under resolvers). |
| website/src/docs/hotchocolate/v16/defining-a-schema/versioning.md | Updated Extending Types link target. |
| website/src/docs/hotchocolate/v16/defining-a-schema/subscriptions.md | Removed version-specific phrasing for NATS provider. |
| website/src/docs/hotchocolate/v16/defining-a-schema/scalars.md | Removed version-specific “new/renamed in v16” phrasing in scalar table notes. |
| website/src/docs/hotchocolate/v16/defining-a-schema/relay.md | Updated DataLoader links + removed version-specific phrasing. |
| website/src/docs/hotchocolate/v16/defining-a-schema/queries.md | Updated Resolvers/DataLoader links to new structure. |
| website/src/docs/hotchocolate/v16/defining-a-schema/object-types.md | Updated “Next steps” links to new structure. |
| website/src/docs/hotchocolate/v16/defining-a-schema/interfaces.md | Updated Extending Types link target. |
| website/src/docs/hotchocolate/v16/defining-a-schema/index.md | Updated “Type extensions” destination and moved runtime behavior links to new structure. |
| website/src/docs/hotchocolate/v16/defining-a-schema/dynamic-schemas.md | Updated Extending Types link target. |
| website/src/docs/hotchocolate/v16/defining-a-schema/documentation.md | Major rewrite/expansion of XML doc extraction guidance (generator vs runtime). |
| website/src/docs/hotchocolate/v16/defining-a-schema/arguments.md | Updated Resolvers link to new structure. |
| website/src/docs/docs.json | Reorganized v16 Hot Chocolate nav: new resolvers section + new fetching-data batching/integrations nesting; removed some sections from nav. |
| website/src/components/articles/doc-article-navigation.tsx | Updated navigation data typing and mapping to support nested navigation items. |
Comments suppressed due to low confidence (5)
website/src/docs/hotchocolate/v16/fetching-data/batching/dataloader.md:7
/docs/hotchocolate/v16/resolvers/resolversis not a valid doc route (there is no corresponding page underwebsite/src/docs/hotchocolate/v16/resolvers/). This link should point at the resolvers section entry page (likely/docs/hotchocolate/v16/resolvers).
This issue also appears on line 214 of the same file.
website/src/docs/hotchocolate/v16/fetching-data/batching/batch-resolver.md:118
- This next-steps link points to
/docs/hotchocolate/v16/resolvers/resolvers, but there is no such page underwebsite/src/docs/hotchocolate/v16/resolvers/. Please update it to the actual resolvers entry page (likely/docs/hotchocolate/v16/resolvers).
- **Need to understand the N+1 problem?** See [DataLoader](/docs/hotchocolate/v16/fetching-data/batching/dataloader) for key-based batching with caching.
- **Need to understand resolver basics?** See [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers).
website/src/docs/hotchocolate/v16/fetching-data/integrations/entity-framework.md:10
- This link uses the
#default-scopeanchor, but the referenced dependency injection page no longer has aDefault Scopesection (it usesService Scoping). Update the anchor (and link text if needed) to match the actual heading so the link doesn’t 404.
This issue also appears on line 17 of the same file.
website/src/docs/hotchocolate/v16/fetching-data/integrations/entity-framework.md:17
- This link uses the
#default-scopeanchor, but the dependency injection doc no longer defines that anchor (the relevant section isService Scoping). Update the anchor so it points to the correct section.
website/src/docs/hotchocolate/v16/fetching-data/batching/dataloader.md:216 - The
Resolverslink points to/docs/hotchocolate/v16/resolvers/resolvers, but there is no corresponding page underwebsite/src/docs/hotchocolate/v16/resolvers/. Update it to the resolvers landing page route (likely/docs/hotchocolate/v16/resolvers).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| - **"I want to understand the schema system."** Read [Defining a Schema](/docs/hotchocolate/v16/defining-a-schema). It covers queries, mutations, subscriptions, and all the GraphQL types. | ||
|
|
||
| - **"I need to fetch data efficiently."** Go to [DataLoader](/docs/hotchocolate/v16/fetching-data/dataloader) for batching and caching, or [Resolvers](/docs/hotchocolate/v16/fetching-data/resolvers) for the full resolver API. | ||
| - **"I need to fetch data efficiently."** Go to [DataLoader](/docs/hotchocolate/v16/fetching-data/batching/dataloader) for batching and caching, or [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers) for the full resolver API. |
| - **Need real-time updates?** See [Subscriptions](/docs/hotchocolate/v16/defining-a-schema/subscriptions). | ||
| - **Need to understand how types map to the schema?** See [Object Types](/docs/hotchocolate/v16/defining-a-schema/object-types). | ||
| - **Need to fetch data efficiently?** See [Resolvers](/docs/hotchocolate/v16/fetching-data/resolvers) and [DataLoader](/docs/hotchocolate/v16/fetching-data/dataloader). | ||
| - **Need to fetch data efficiently?** See [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers) and [DataLoader](/docs/hotchocolate/v16/fetching-data/batching/dataloader). |
| - Add field inputs with [Arguments](./arguments) and [Input Object Types](./input-object-types). | ||
| - Strengthen the contract with [Lists and Non-Null](./lists). | ||
| - Move to runtime behavior with [Resolvers](../fetching-data/resolvers) and [DataLoader](../fetching-data/dataloader) after the schema shape is clear. | ||
| - Move to runtime behavior with [Resolvers](../resolvers/resolvers) and [DataLoader](../fetching-data/batching/dataloader) after the schema shape is clear. |
| - **Need to define query entry points?** See [Queries](/docs/hotchocolate/v16/defining-a-schema/queries). | ||
| - **Need to understand resolver patterns?** See [Resolvers](/docs/hotchocolate/v16/fetching-data/resolvers). | ||
| - **Need to compose types from multiple classes?** See [Extending Types](/docs/hotchocolate/v16/defining-a-schema/extending-types). | ||
| - **Need to understand resolver patterns?** See [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers). |
| - **Need to understand nullability?** See [Non-Null](/docs/hotchocolate/v16/defining-a-schema/non-null). | ||
| - **Need global IDs?** See [Relay](/docs/hotchocolate/v16/defining-a-schema/relay). | ||
| - **Need to set up resolvers?** See [Resolvers](/docs/hotchocolate/v16/fetching-data/resolvers). | ||
| - **Need to set up resolvers?** See [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers). |
| - [Resolvers](/docs/hotchocolate/v16/resolvers/resolvers) for resolver patterns | ||
| - [DataLoader](/docs/hotchocolate/v16/fetching-data/batching/dataloader) for batching in reference resolvers |
|
|
||
| # Next Steps | ||
|
|
||
| - Learn more about [resolvers](/docs/hotchocolate/v16/resolvers/resolvers) for field resolution |
| edges, | ||
| pageInfo, | ||
| totalCount: _ => ValueTask.FromResult(result.TotalCount)); | ||
| var db = context.Service<CatalogContext>(); |
| # Snapshot Testing with CookieCrumble | ||
|
|
||
| Asserting on individual fields works for small results, but GraphQL responses can be large and nested. Snapshot testing captures the entire response and compares it against a stored baseline. Hot Chocolate uses [CookieCrumble](/docs/hotchocolate/v16/testing) for this. | ||
| Asserting on individual fields works for small results, but GraphQL responses can be large and nested. Snapshot testing captures the entire response and compares it against a stored baseline. Hot Chocolate uses [CookieCrumble](/docs/hotchocolate/v16/guides/testing) for this. |
No description provided.