eolas/neuron/44f350ea-f6e5-4cdc-865c-2119ac043cfa/Schema_Definition_Language_in_GraphQL.md

87 lines
1.4 KiB
Markdown
Raw Normal View History

2024-12-09 18:34:15 +00:00
---
tags: [graphql]
---
# Schema Definition Language
SDL is the formal name for the syntax of GraphQL schemas.
## Types
A schema is a collection of object types that contain fields. Each field has a
type of its own. A field's type can be a primitive/scalar value (such as an
`Int` or a `String`), or it can be another object type (just like a custom type
in TS).
A schema's type can be non-nullable which is to say, a required field. We
indicate this with `!`.
A type for a field can be a collection/array of a given type.
The following example indicates these properties:
```gql
type Person {
age: Int
name: String
pets: [Pet]!
}
type Pet {
species: String
name: String
age: Int
}
```
## Queries
A query is also a schema type but of a special sort.
> The fields of this type are entry points into the rest of the schema. These
> are the top-level fields that the client can query for.
For example if we had this type:
```graphql
type Track {
id: ID!
author: Author!
thumbnail: String
length: Int
modulesCount: Int
}
```
We could define a type to access a give `Track` as follows:
```graphql
type Query {
tracksForHomePage: [Track!]!
}
```
Then use this type as the basis for a query:
```
```
## Descriptions
Descriptions are comments that allow you to document your Schema
Single line:
```gql
"Single line comment"
```
```gql
"""
Multi
line
comment
"""
```