![]() The role of a client is to issue HTTP requests to a server in order to interact with a GraphQL service.Īllowing other media types, particularly on requests, can be insecure.įor consistency and ease of notation, examples of the response are given in JSON throughout this specification. In this document, the term client refers to a GraphQL over HTTP Specification compliant HTTP client unless the context indicates otherwise. A server is not a GraphQL service, it is a GraphQL service host. The role of a server is to provide a client access to one or more GraphQL services over HTTP. In this document, the term server refers to a GraphQL over HTTP Specification compliant HTTP server unless the context indicates otherwise. GraphQL queries and mutations naturally mirror the request/response message model used in HTTP, allowing us to provide a GraphQL request in an HTTP request and a GraphQL response in an HTTP response. Though the GraphQL specification is transport agnostic, this GraphQL over HTTP specification aims to map GraphQL’s semantics to their HTTP equivalents, enabling us to combine the full advantages of GraphQL with the rich feature set of HTTP. This is an example of a non-normative note. ![]() “Note: “) or are set apart in a note block, like this: Notes are either introduced explicitly in prose (e.g. Notes in this document are non-normative, and are presented to clarify intent, draw attention to potential edge-cases and pit-falls, and answer common questions that arise during implementation. “for example”) or are set apart in example or counter-example blocks, like this: Example № 1 This is an example of a non-normative example.Ĭounter Example № 2 This is an example of a non-normative counter-example. Examples are either introduced explicitly in prose (e.g. Non-Normative PortionsĪll contents of this document are normative except portions explicitly declared as non-normative.Įxamples in this document are non-normative, and are presented to aid understanding of introduced concepts and the behavior of normative portions of the specification. These key words may appear in lowercase and still retain their meaning unless explicitly declared as non-normative.Ī conforming implementation of GraphQL over HTTP may provide additional functionality, but must not where explicitly disallowed or would otherwise result in non-conformance. The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in the normative portions of this document are to be interpreted as described in IETF RFC 2119. Conformance requirements are described in this document via both descriptive assertions and key words with clearly defined meanings. ConformanceĪ conforming implementation of GraphQL over HTTP must fulfill all normative requirements. IN NO EVENT WILL THE PARTIES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The entire risk as to implementing or otherwise using the materials is assumed by the implementer and user. The parties expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the materials. ![]() Copyright noticeĬopyright © 2022-present, GraphQL contributors This specification aims to codify and expand on this work. Previous to this specification, the article Serving over HTTP ( WayBack Machine entry, 1st June 2022) on the website served as guidance, and leading implementations on both client and server have mostly upheld those best practices and thus established a de-facto standard that is commonly used throughout the ecosystem. The GraphQL specification deliberately does not specify the transport layer, however HTTP is the most common choice when serving GraphQL to remote clients due to its ubiquity. If any statement or algorithm in this specification appears to conflict with the GraphQL specification, the behavior detailed in the GraphQL specification should be used (and an issue raised). This specification does not override or replace the GraphQL specification, it extends it to cover the topic of serving GraphQL services over HTTP. This specification details how GraphQL should be served and consumed over HTTP in order to maximize interoperability between clients, servers and tools. 6.4.2.1.7Field errors encountered during execution.6.4.2.1.5Operation cannot be determined.6.4.1.1.7Field errors encountered during execution.6.4.1.1.5Operation cannot be determined.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |