From be9d5c6208653377d4c7d028620f4bdd8818793e Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Wed, 13 Jun 2018 14:24:20 +0200 Subject: [PATCH] Move description section --- spec/Section 3 -- Type System.md | 114 +++++++++++++++---------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/spec/Section 3 -- Type System.md b/spec/Section 3 -- Type System.md index 00bbb8e49..d62413be3 100644 --- a/spec/Section 3 -- Type System.md +++ b/spec/Section 3 -- Type System.md @@ -38,6 +38,63 @@ local service to represent data a GraphQL client only accesses locally, or by a GraphQL service which is itself an extension of another GraphQL service. +## Descriptions + +Description : StringValue + +Documentation is 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](http://commonmark.org/)). In the +type system definition language, these description strings (often {BlockString}) +occur immediately before the definition they describe. + +All GraphQL types, fields, arguments and other definitions which can be +described should provide a {Description} unless they are considered self +descriptive. + +As an example, this simple GraphQL schema is well described: + +```graphql example +""" +A simple GraphQL schema which is well described. +""" +type Query { + """ + Translates a string from a given language into a different language. + """ + translate( + "The original language that `text` is provided in." + fromLanguage: Language + + "The translated language to be returned." + toLanguage: Language + + "The text to be translated." + text: String + ): String +} + +""" +The set of languages supported by `translate`. +""" +enum Language { + "English" + EN + + "French" + FR + + "Chinese" + CH +} +``` + + ## Schema SchemaDefinition : schema Directives[Const]? { RootOperationTypeDefinition+ } @@ -168,63 +225,6 @@ Schema extensions have the potential to be invalid if incorrectly defined. 2. Any directives provided must not already apply to the original Schema. -## Descriptions - -Description : StringValue - -Documentation is 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](http://commonmark.org/)). In the -type system definition language, these description strings (often {BlockString}) -occur immediately before the definition they describe. - -All GraphQL types, fields, arguments and other definitions which can be -described should provide a {Description} unless they are considered self -descriptive. - -As an example, this simple GraphQL schema is well described: - -```graphql example -""" -A simple GraphQL schema which is well described. -""" -type Query { - """ - Translates a string from a given language into a different language. - """ - translate( - "The original language that `text` is provided in." - fromLanguage: Language - - "The translated language to be returned." - toLanguage: Language - - "The text to be translated." - text: String - ): String -} - -""" -The set of languages supported by `translate`. -""" -enum Language { - "English" - EN - - "French" - FR - - "Chinese" - CH -} -``` - - ## Types TypeDefinition :