@@ -4,125 +4,40 @@ _Current Working Draft_
4
4
5
5
** Introduction**
6
6
7
- This is the specification for GraphQL, a query language and execution engine
8
- originally created at Facebook in 2012 for describing the capabilities and
9
- requirements of data models for client-server applications. The development of
10
- this open standard started in 2015. This specification was licensed under OWFa
11
- 1.0 in 2017. The [ GraphQL Foundation] ( https://graphql.org/foundation/ ) was
12
- formed in 2019 as a neutral focal point for organizations who support the
13
- GraphQL ecosystem, and the
14
- [ GraphQL Specification Project] ( https://graphql.org/community/ ) was established
15
- also in 2019 as the Joint Development Foundation Projects, LLC, GraphQL Series.
16
-
17
- If your organization benefits from GraphQL, please consider
18
- [ becoming a member] ( https://graphql.org/foundation/join/#graphql-foundation ) and
19
- helping us to sustain the activities that support the health of our neutral
20
- ecosystem.
21
-
22
- The GraphQL Specification Project has evolved and may continue to evolve in
23
- future editions of this specification. Previous editions of the GraphQL
24
- specification can be found at permalinks that match their
7
+ This is the specification for GraphQL, a query language and execution engine for
8
+ describing and performing the capabilities and requirements of data models for
9
+ client-server applications.
10
+
11
+ A conforming implementation of GraphQL must fulfill all normative requirements
12
+ described in this specification (see [ Conformance] ( #sec-Appendix-Conformance ) ).
13
+ The GraphQL specification is provided under the OWFa 1.0 license (see
14
+ [ Copyright and Licensing] ( #sec-Appendix-Copyright-and-Licensing ) ).
15
+
16
+ GraphQL was originally created in 2012 and the development of this open standard
17
+ started in 2015. It is a deliverable of the
18
+ [ GraphQL Specification Project] ( https://graphql.org/community/ ) , established in
19
+ 2019 with the [ Joint Development Foundation] ( https://www.jointdevelopment.org/ ) .
20
+
21
+ The [ GraphQL Foundation] ( https://graphql.org/foundation/ ) was formed in 2019 as
22
+ a neutral focal point for organizations who support development of the GraphQL
23
+ ecosystem. If your organization benefits from GraphQL, please consider
24
+ [ becoming a member] ( https://graphql.org/foundation/join/#graphql-foundation ) .
25
+
26
+ This specification is developed on GitHub at
27
+ [ graphql/graphql-spec] ( https://github.com/graphql/graphql-spec/ ) . Contributions
28
+ are managed by the
29
+ [ GraphQL Working Group] ( https://github.com/graphql/graphql-wg ) , hosted by the
30
+ [ GraphQL Technical Steering Committee] ( https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md ) .
31
+ To learn more see the
32
+ [ contribution guide] ( https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md ) .
33
+
34
+ GraphQL has evolved and may continue to evolve in future editions of this
35
+ specification. Previous editions of the GraphQL specification can be found at
36
+ permalinks that match their
25
37
[ release tag] ( https://github.com/graphql/graphql-spec/releases ) . The latest
26
38
working draft release can be found at
27
39
[ https://spec.graphql.org/draft ] ( https://spec.graphql.org/draft ) .
28
40
29
- ** Copyright Notice**
30
-
31
- Copyright © 2015-2018, Facebook, Inc.
32
-
33
- Copyright © 2019-present, GraphQL contributors
34
-
35
- THESE MATERIALS ARE PROVIDED “AS IS”. The parties expressly disclaim any
36
- warranties (express, implied, or otherwise), including implied warranties of
37
- merchantability, non-infringement, fitness for a particular purpose, or title,
38
- related to the materials. The entire risk as to implementing or otherwise using
39
- the materials is assumed by the implementer and user. IN NO EVENT WILL THE
40
- PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT,
41
- SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES
42
- OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING
43
- AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR
44
- OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE
45
- POSSIBILITY OF SUCH DAMAGE.
46
-
47
- ** Licensing**
48
-
49
- The GraphQL Specification Project is made available by the
50
- [ Joint Development Foundation] ( https://www.jointdevelopment.org/ ) . The current
51
- [ Working Group] ( https://github.com/graphql/graphql-wg ) charter, which includes
52
- the IP policy governing all working group deliverables (including
53
- specifications, source code, and datasets) may be found at
54
- [ https://technical-charter.graphql.org ] ( https://technical-charter.graphql.org ) .
55
-
56
- Currently, the licenses governing GraphQL Specification Project deliverables
57
- are:
58
-
59
- | Deliverable | License |
60
- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
61
- | Specifications | [ Open Web Foundation Agreement 1.0 (Patent and Copyright Grants)] ( https://www.openwebfoundation.org/the-agreements/the-owf-1-0-agreements-granted-claims/owfa-1-0 ) |
62
- | Source code | [ MIT License] ( https://opensource.org/licenses/MIT ) |
63
- | Data sets | [ CC0 1.0] ( https://creativecommons.org/publicdomain/zero/1.0/ ) |
64
-
65
- ** Conformance**
66
-
67
- A conforming implementation of GraphQL must fulfill all normative requirements.
68
- Conformance requirements are described in this document via both descriptive
69
- assertions and key words with clearly defined meanings.
70
-
71
- The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
72
- "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in the normative portions of
73
- this document are to be interpreted as described in
74
- [ IETF RFC 2119] ( https://tools.ietf.org/html/rfc2119 ) . These key words may appear
75
- in lowercase and still retain their meaning unless explicitly declared as
76
- non-normative.
77
-
78
- A conforming implementation of GraphQL may provide additional functionality, but
79
- must not where explicitly disallowed or would otherwise result in
80
- non-conformance.
81
-
82
- ** Conforming Algorithms**
83
-
84
- Algorithm steps phrased in imperative grammar (e.g. "Return the result of
85
- calling resolver") are to be interpreted with the same level of requirement as
86
- the algorithm it is contained within. Any algorithm referenced within an
87
- algorithm step (e.g. "Let completedResult be the result of calling
88
- CompleteValue()") is to be interpreted as having at least the same level of
89
- requirement as the algorithm containing that step.
90
-
91
- Conformance requirements expressed as algorithms and data collections can be
92
- fulfilled by an implementation of this specification in any way as long as the
93
- perceived result is equivalent. Algorithms described in this document are
94
- written to be easy to understand. Implementers are encouraged to include
95
- equivalent but optimized implementations.
96
-
97
- See [ Appendix A] ( #sec-Appendix-Notation-Conventions ) for more details about the
98
- definition of algorithms, data collections, and other notational conventions
99
- used in this document.
100
-
101
- ** Non-Normative Portions**
102
-
103
- All contents of this document are normative except portions explicitly declared
104
- as non-normative.
105
-
106
- Examples in this document are non-normative, and are presented to aid
107
- understanding of introduced concepts and the behavior of normative portions of
108
- the specification. Examples are either introduced explicitly in prose (e.g. "for
109
- example") or are set apart in example or counter-example blocks, like this:
110
-
111
- ``` example
112
- This is an example of a non-normative example.
113
- ```
114
-
115
- ``` counter-example
116
- This is an example of a non-normative counter-example.
117
- ```
118
-
119
- Notes in this document are non-normative, and are presented to clarify intent,
120
- draw attention to potential edge-cases and pit-falls, and answer common
121
- questions that arise during implementation. Notes are either introduced
122
- explicitly in prose (e.g. "Note: ") or are set apart in a note block, like this:
123
-
124
- Note: This is an example of a non-normative note.
125
-
126
41
# [ Overview] ( Section%201%20--%20Overview.md )
127
42
128
43
# [ Language] ( Section%202%20--%20Language.md )
@@ -137,8 +52,12 @@ Note: This is an example of a non-normative note.
137
52
138
53
# [ Response] ( Section%207%20--%20Response.md )
139
54
140
- # [ Appendix: Notation Conventions] ( Appendix%20A%20--%20Notation%20Conventions.md )
55
+ # [ Appendix: Conformance] ( Appendix%20A%20--%20Conformance.md )
56
+
57
+ # [ Appendix: Notation Conventions] ( Appendix%20B%20--%20Notation%20Conventions.md )
58
+
59
+ # [ Appendix: Grammar Summary] ( Appendix%20C%20--%20Grammar%20Summary.md )
141
60
142
- # [ Appendix: Grammar Summary ] ( Appendix%20B %20--%20Grammar%20Summary .md )
61
+ # [ Appendix: Specified Definitions ] ( Appendix%20D %20--%20Specified%20Definitions .md )
143
62
144
- # [ Appendix: Specified Definitions ] ( Appendix%20C%20--%20Specified%20Definitions .md)
63
+ # [ Appendix: Licensing ] ( ../LICENSE .md)
0 commit comments