-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Add descriptions to executable documents | 2025 Update #1170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
5517373
Add descriptions to executable definitions
IvanGoncharov 9f7ec63
Updated spec wording for descriptions in executable documents
fotoetienne 1a1a4b3
Add example label to GraphQL code block in Language section
fotoetienne 88c47a8
Refactor description section for clarity
fotoetienne f186ce7
Add optional description to fragment and variable definitions
fotoetienne 9175057
Prettier
fotoetienne 9af6480
Refactor time machine status query documentation for clarity and conc…
fotoetienne 73c19c8
Reduced example
fotoetienne 6d7b259
Single quotes for single line description
fotoetienne 2236275
Refactor descriptions text, incorporating feedback from working group
fotoetienne b54fe84
formatting
fotoetienne 07be572
Editorial: move descriptions definition above document
leebyron 369dc2b
editorial: move examples back to type system, add some links
leebyron f2b1b1f
Editorial
leebyron File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -50,20 +50,16 @@ Tools which only seek to produce and extend schema and not execute requests may | |
choose to only allow {TypeSystemExtensionDocument} and not allow | ||
{ExecutableDefinition} but should provide a descriptive error if present. | ||
|
||
## Descriptions | ||
## Type System Descriptions | ||
|
||
Description : StringValue | ||
Documentation is a first-class feature of GraphQL type systems, written | ||
immediately alongside definitions in a {TypeSystemDocument} and made available | ||
via introspection. | ||
|
||
Documentation is a first-class feature of GraphQL type systems. To ensure the | ||
documentation of a GraphQL service remains consistent with its capabilities, | ||
descriptions of GraphQL definitions are provided alongside their definitions and | ||
made available via introspection. | ||
|
||
To allow GraphQL service designers to easily publish documentation alongside the | ||
capabilities of a GraphQL service, GraphQL descriptions are defined using the | ||
Markdown syntax (as specified by [CommonMark](https://commonmark.org/)). In the | ||
type system definition language, these description strings (often {BlockString}) | ||
occur immediately before the definition they describe. | ||
[Descriptions](#sec-Descriptions) allow GraphQL service designers to easily | ||
provide documentation which remains consistent with the capabilities of a | ||
GraphQL service. Descriptions provided as Markdown (as specified by | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Descriptions may be provided as M... Will raise a PR with this edit |
||
[CommonMark](https://commonmark.org/)) for every definition in a type system. | ||
|
||
GraphQL schema and all other definitions (e.g. types, fields, arguments, etc.) | ||
which can be described should provide a {Description} unless they are considered | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's the use case for providing descriptions for a FragmentDefinition. Is this tailored to the case where we use a FragmentDefinition as a reusable selection-set across the codebase? Do we really want to encourage that? I'd think that with Fragment Arguments this could carry merit though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have it in Apollo Kotlin to add Kdoc to the generated models. Not 100% sure how many people use it. Probably not too many but I would still include it for consistency.
We have also APIs to load fragments from the cache so maybe having more contextual info about what is loaded could help.