commit
a9a96f4382
@ -0,0 +1,263 @@
|
|||||||
|
# GraphQL Schema Definition Language
|
||||||
|
|
||||||
|
"""
|
||||||
|
Color value
|
||||||
|
"""
|
||||||
|
scalar Color
|
||||||
|
|
||||||
|
"""
|
||||||
|
Node interface
|
||||||
|
|
||||||
|
- allows (re)fetch arbitrary entity only by ID
|
||||||
|
- allows client side cache normalization
|
||||||
|
|
||||||
|
See [Relay Global Object Identification Specification](https://facebook.github.io/relay/graphql/objectidentification.htm)
|
||||||
|
"""
|
||||||
|
interface Node {
|
||||||
|
"""
|
||||||
|
Globally unique identifier,
|
||||||
|
typically `${__typename}:${dbId}`
|
||||||
|
may be encoded in *base64*
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
A character in the Star Wars Trilogy
|
||||||
|
"""
|
||||||
|
interface Character {
|
||||||
|
"""
|
||||||
|
The id of the character.
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
"""
|
||||||
|
The name of the character.
|
||||||
|
"""
|
||||||
|
name: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
The friends of the character, or an empty list if they have none.
|
||||||
|
"""
|
||||||
|
friends: [Character]
|
||||||
|
|
||||||
|
"""
|
||||||
|
Which movies they appear in
|
||||||
|
"""
|
||||||
|
appearsIn: [Episode]
|
||||||
|
|
||||||
|
"""
|
||||||
|
All secrets about their past
|
||||||
|
"""
|
||||||
|
secretBackstory: String
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
A mechanical creature in the Star Wars universe.
|
||||||
|
"""
|
||||||
|
type Droid implements Character {
|
||||||
|
"""
|
||||||
|
The id of the droid.
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
"""
|
||||||
|
The name of the droid.
|
||||||
|
"""
|
||||||
|
name: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
The friends of the droid, or an empty list if they have none.
|
||||||
|
"""
|
||||||
|
friends: [Character]
|
||||||
|
|
||||||
|
"""
|
||||||
|
Which movies they appear in.
|
||||||
|
"""
|
||||||
|
appearsIn: [Episode]
|
||||||
|
|
||||||
|
"""
|
||||||
|
Construction date and the name of the designer.
|
||||||
|
"""
|
||||||
|
secretBackstory: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
The primary function of the droid.
|
||||||
|
"""
|
||||||
|
primaryFunction: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
Chase color of the droid.
|
||||||
|
"""
|
||||||
|
color: Color
|
||||||
|
}
|
||||||
|
|
||||||
|
# One of the films in the Star Wars Trilogy
|
||||||
|
enum Episode {
|
||||||
|
"""
|
||||||
|
Released in 1977.
|
||||||
|
"""
|
||||||
|
NEWHOPE
|
||||||
|
|
||||||
|
"""
|
||||||
|
Released in 1980.
|
||||||
|
"""
|
||||||
|
EMPIRE
|
||||||
|
|
||||||
|
"""
|
||||||
|
Released in 1983.
|
||||||
|
"""
|
||||||
|
JEDI
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
A humanoid creature in the Star Wars universe.
|
||||||
|
"""
|
||||||
|
type Human implements Character {
|
||||||
|
"""
|
||||||
|
The id of the human.
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
|
||||||
|
"""
|
||||||
|
The name of the human.
|
||||||
|
"""
|
||||||
|
name: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
The friends of the human, or an empty list if they have none.
|
||||||
|
"""
|
||||||
|
friends: [Character]
|
||||||
|
|
||||||
|
"""
|
||||||
|
Which movies they appear in.
|
||||||
|
"""
|
||||||
|
appearsIn: [Episode]
|
||||||
|
|
||||||
|
"""
|
||||||
|
The home planet of the human, or null if unknown.
|
||||||
|
"""
|
||||||
|
homePlanet: String
|
||||||
|
|
||||||
|
"""
|
||||||
|
Where are they from and how they came to be who they are.
|
||||||
|
"""
|
||||||
|
secretBackstory: String
|
||||||
|
}
|
||||||
|
|
||||||
|
enum LengthUnit {
|
||||||
|
METER
|
||||||
|
FEET
|
||||||
|
}
|
||||||
|
|
||||||
|
type Starship {
|
||||||
|
id: ID!
|
||||||
|
name: String!
|
||||||
|
length(unit: LengthUnit = METER): Float
|
||||||
|
}
|
||||||
|
|
||||||
|
union SearchResult = Human | Droid | Starship
|
||||||
|
|
||||||
|
input SearchInput {
|
||||||
|
name: String
|
||||||
|
episode: Episode
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Root Query
|
||||||
|
"""
|
||||||
|
type Query {
|
||||||
|
"""
|
||||||
|
Return the hero by episode.
|
||||||
|
"""
|
||||||
|
hero(
|
||||||
|
"""
|
||||||
|
If omitted, returns the hero of the whole saga. If provided, returns the hero of that particular episode.
|
||||||
|
"""
|
||||||
|
episode: Episode
|
||||||
|
): Character
|
||||||
|
|
||||||
|
"""
|
||||||
|
Return the Human by ID.
|
||||||
|
"""
|
||||||
|
human(
|
||||||
|
"""
|
||||||
|
id of the human
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
): Human
|
||||||
|
|
||||||
|
"""
|
||||||
|
Return the Droid by ID.
|
||||||
|
"""
|
||||||
|
droid(
|
||||||
|
"""
|
||||||
|
id of the droid
|
||||||
|
"""
|
||||||
|
id: ID!
|
||||||
|
): Droid
|
||||||
|
|
||||||
|
"""
|
||||||
|
Search everything by name
|
||||||
|
|
||||||
|
__NOTE__: You should use Relay pagination
|
||||||
|
"""
|
||||||
|
search(search: SearchInput!): [SearchResult]
|
||||||
|
@deprecated(reason: "`search` will be replaced.")
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Root Mutation
|
||||||
|
"""
|
||||||
|
type Mutation {
|
||||||
|
"""
|
||||||
|
Save the favorite episode.
|
||||||
|
"""
|
||||||
|
favorite(
|
||||||
|
"""
|
||||||
|
Favorite episode.
|
||||||
|
"""
|
||||||
|
episode: Episode!
|
||||||
|
): Episode
|
||||||
|
}
|
||||||
|
|
||||||
|
"""
|
||||||
|
Subscriptions — live events
|
||||||
|
"""
|
||||||
|
type Subscription {
|
||||||
|
"""
|
||||||
|
Message
|
||||||
|
"""
|
||||||
|
message: String
|
||||||
|
}
|
||||||
|
|
||||||
|
extend type Query {
|
||||||
|
"""
|
||||||
|
Dummy query for highlighting test
|
||||||
|
"""
|
||||||
|
dummy(
|
||||||
|
int: Int = 123
|
||||||
|
float: Float = 123.456
|
||||||
|
str: String = "Hello World!"
|
||||||
|
boolDefaultTrue: Boolean = true
|
||||||
|
boolDefaultFalse: Boolean = false
|
||||||
|
id: ID
|
||||||
|
search: SearchInput = null
|
||||||
|
): Boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
schema {
|
||||||
|
query: Query
|
||||||
|
mutation: Mutation
|
||||||
|
subscription: Subscription
|
||||||
|
}
|
||||||
|
|
||||||
|
# GraphQL Query Language
|
||||||
|
|
||||||
|
query dummyQuery($int: Int) {
|
||||||
|
dummy(int: $int)
|
||||||
|
}
|
||||||
|
|
||||||
|
mutation favoriteEpisode($episode: Episode) {
|
||||||
|
favorite(episode: $episode)
|
||||||
|
}
|
Loading…
Reference in New Issue