@@ -22,6 +22,7 @@ any built in types (including Scalar and Introspection types).
2222All directives within a GraphQL schema must have unique names. A directive
2323and a type may share the same name, since there is no ambiguity between them.
2424
25+
2526## Types
2627
2728The fundamental unit of any GraphQL Schema is the type. There are eight kinds
@@ -59,6 +60,7 @@ Finally, oftentimes it is useful to provide complex structs as inputs to
5960GraphQL queries; the ` Input Object ` type allows the schema to define exactly
6061what data is expected from the client in these queries.
6162
63+
6264### Scalars
6365
6466As expected by the name, a scalar represents a primitive value in GraphQL.
@@ -113,13 +115,14 @@ and floating-point values, they are interpreted as an integer input value if
113115they have an empty fractional part (ex. ` 1.0 ` ) and otherwise as floating-point
114116input value.
115117
116- #### Built-in Scalars
118+ ** Built-in Scalars**
117119
118120GraphQL provides a basic set of well-defined Scalar types. A GraphQL server
119121should support all of these types, and a GraphQL server which provide a type by
120122these names must adhere to the behavior described below.
121123
122- ##### Int
124+
125+ #### Int
123126
124127The Int scalar type represents a signed 32-bit numeric non-fractional values.
125128Response formats that support a 32-bit integer or a number type should use
@@ -143,7 +146,8 @@ Note: Numeric integer values larger than 32-bit should either use String or a
143146custom-defined Scalar type, as not all platforms and transports support
144147encoding integer numbers larger than 32-bit.
145148
146- ##### Float
149+
150+ #### Float
147151
148152The Float scalar type represents signed double-precision fractional values
149153as specified by [ IEEE 754] ( http://en.wikipedia.org/wiki/IEEE_floating_point ) .
@@ -165,7 +169,8 @@ other input values, including strings with numeric content, must raise a query
165169error indicating an incorrect type. If the integer input value represents a
166170value not representable by IEEE 754, a query error should be raised.
167171
168- ##### String
172+
173+ #### String
169174
170175The String scalar type represents textual data, represented as UTF-8 character
171176sequences. The String type is most often used by GraphQL to represent free-form
@@ -185,7 +190,8 @@ When expected as an input type, only valid UTF-8 string input values are
185190accepted. All other input values must raise a query error indicating an
186191incorrect type.
187192
188- ##### Boolean
193+
194+ #### Boolean
189195
190196The Boolean scalar type represents ` true ` or ` false ` . Response formats should
191197use a built-in boolean type if supported; otherwise, they should use their
@@ -202,7 +208,8 @@ otherwise they must raise a field error. Examples of this may include returning
202208When expected as an input type, only boolean input values are accepted. All
203209other input values must raise a query error indicating an incorrect type.
204210
205- ##### ID
211+
212+ #### ID
206213
207214The ID scalar type represents a unique identifier, often used to refetch an
208215object or as key for a cache. The ID type is serialized in the same way as
@@ -444,6 +451,7 @@ executor, so this is covered in that section of the spec.
444451
445452Objects are never valid inputs.
446453
454+
447455#### Object Field Arguments
448456
449457Object fields are conceptually functions which yield values. Occasionally object
@@ -484,13 +492,15 @@ May yield the result:
484492
485493The type of an object field argument can be any Input type.
486494
495+
487496#### Object Field deprecation
488497
489498Fields in an object may be marked as deprecated as deemed necessary by the
490499application. It is still legal to query for these fields (to ensure existing
491500clients are not broken by the change), but the fields should be appropriately
492501treated in documentation and tooling.
493502
503+
494504#### Object type validation
495505
496506Object types have the potential to be invalid if incorrectly defined. This set
@@ -618,6 +628,7 @@ is the same as the result coercion of the object.
618628
619629Interfaces are never valid inputs.
620630
631+
621632#### Interface type validation
622633
623634Interface types have the potential to be invalid if incorrectly defined.
@@ -699,6 +710,7 @@ same as the result coercion of the object.
699710
700711Unions are never valid inputs.
701712
713+
702714#### Union type validation
703715
704716Union types have the potential to be invalid if incorrectly defined.
@@ -793,6 +805,7 @@ the only item in the list. This is to allow inputs that accept a "var args"
793805to declare their input type as a list; if only one argument is passed (a common
794806case), the client can just pass that value rather than constructing the list.
795807
808+
796809### Non-Null
797810
798811By default, all types in GraphQL are nullable; the {null} value is a valid
@@ -858,6 +871,7 @@ engine supports.
858871
859872GraphQL implementations should provide the ` @skip ` and ` @include ` directives.
860873
874+
861875### @skip
862876
863877The ` @skip ` directive may be provided for fields, fragment spreads, and
@@ -873,6 +887,7 @@ query myQuery($someTest: Boolean) {
873887}
874888```
875889
890+
876891### @include
877892
878893The ` @include ` directive may be provided for fields, fragment spreads, and
@@ -891,7 +906,7 @@ query myQuery($someTest: Boolean) {
891906In the case that both the ` @skip ` and ` @include ` directives are provided in the same context, the field or fragment * must* be queried only if the ` @skip ` condition is false * and* the ` @include ` condition is true. Stated conversely, the field/fragment must * not* be queried if either the ` @skip ` condition is true * or* the ` @include ` condition is false.
892907
893908
894- ## Starting types
909+ ## Initial types
895910
896911A GraphQL schema includes types, indicating where query and mutation
897912operations start. This provides the initial entry points into the
0 commit comments