Skip to content

Commit

Permalink
Merge pull request #2276 from sgayangi/gql-backend
Browse files Browse the repository at this point in the history
Add sample definition files
  • Loading branch information
CrowleyRajapakse authored Apr 5, 2024
2 parents 6ecf677 + 6ded779 commit bb35971
Show file tree
Hide file tree
Showing 2 changed files with 357 additions and 0 deletions.
158 changes: 158 additions & 0 deletions developer/tryout/samples/definitions/EmployeeServiceDefinition.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
{
"openapi": "3.0.1",
"info": {
"title": "EmployeeServiceAPI",
"version": "3.14"
},
"servers": [
{
"url": "http://employee-service:80",
"description": "Server URL",
"variables": {}
}
],
"paths": {
"/employee": {
"get": {
"tags": [
"employee-controller"
],
"operationId": "getEmployees",
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "default response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Employee"
}
}
}
}
}
}
},
"post": {
"tags": [
"employee-controller"
],
"operationId": "addEmployee",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Employee"
}
}
}
},
"responses": {
"200": {
"description": "default response",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Employee"
}
}
}
}
}
}
},
"/employee/{employeeId}": {
"put": {
"tags": [
"employee-controller"
],
"operationId": "editEmployee",
"parameters": [
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "default response",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Employee"
}
}
}
}
}
},
"delete": {
"tags": [
"employee-controller"
],
"operationId": "deleteEmployee",
"parameters": [
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "default response",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Employee"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Employee": {
"type": "object",
"properties": {
"empId": {
"type": "string"
},
"name": {
"type": "string"
},
"designation": {
"type": "string"
},
"salary": {
"type": "number",
"format": "double"
}
}
}
}
}
}
199 changes: 199 additions & 0 deletions developer/tryout/samples/definitions/StarWars.graphql
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
schema {
query: Query
mutation: Mutation
subscription: Subscription
}

# The query type, represents all of the entry points into our object graph
type Query {
hero(episode: Episode): Character
reviews(episode: Episode!): [Review]
search(text: String): [SearchResult]
character(id: ID!): Character
droid(id: ID!): Droid
human(id: ID!): Human
allHumans(first: Int): [Human]
allDroids(first: Int): [Droid]
allCharacters(first: Int): [Character]
starship(id: ID!): Starship
}

# The mutation type, represents all updates we can make to our data
type Mutation {
createReview(episode: Episode, review: ReviewInput!): Review
}

# The subscription type, represents all subscriptions we can make to our data
type Subscription {
reviewAdded(episode: Episode): Review
}

# The episodes in the Star Wars trilogy
enum Episode {
# Star Wars Episode IV: A New Hope, released in 1977.
NEWHOPE

# Star Wars Episode V: The Empire Strikes Back, released in 1980.
EMPIRE

# Star Wars Episode VI: Return of the Jedi, released in 1983.
JEDI

# Star Wars Episode III: Revenge of the Sith, released in 2005
SITH
}

# A character from the Star Wars universe
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]

# The friends of the character exposed as a connection with edges
friendsConnection(first: Int, after: ID): FriendsConnection!

# The movies this character appears in
appearsIn: [Episode]!
}

# Units of height
enum LengthUnit {
# The standard unit around the world
METER

# Primarily used in the United States
FOOT
}

# A humanoid creature from the Star Wars universe
type Human implements Character {
# The ID of the human
id: ID!

# What this human calls themselves
name: String!

# The home planet of the human, or null if unknown
homePlanet: String

# Height in the preferred unit, default is meters
height(unit: LengthUnit = METER): Float

# Mass in kilograms, or null if unknown
mass: Float

# This human's friends, or an empty list if they have none
friends: [Character]

# The friends of the human exposed as a connection with edges
friendsConnection(first: Int, after: ID): FriendsConnection!

# The movies this human appears in
appearsIn: [Episode]!

# A list of starships this person has piloted, or an empty list if none
starships: [Starship]
}

# An autonomous mechanical character in the Star Wars universe
type Droid implements Character {
# The ID of the droid
id: ID!

# What others call this droid
name: String!

# This droid's friends, or an empty list if they have none
friends: [Character]

# The friends of the droid exposed as a connection with edges
friendsConnection(first: Int, after: ID): FriendsConnection!

# The movies this droid appears in
appearsIn: [Episode]!

# This droid's primary function
primaryFunction: String
}

# A connection object for a character's friends
type FriendsConnection {
# The total number of friends
totalCount: Int

# The edges for each of the character's friends.
edges: [FriendsEdge]

# A list of the friends, as a convenience when edges are not needed.
friends: [Character]

# Information for paginating this connection
pageInfo: PageInfo!
}

# An edge object for a character's friends
type FriendsEdge {
# A cursor used for pagination
cursor: ID!

# The character represented by this friendship edge
node: Character
}

# Information for paginating this connection
type PageInfo {
startCursor: ID
endCursor: ID
hasNextPage: Boolean!
}

# Represents a review for a movie
type Review {
# The movie
episode: Episode

# The number of stars this review gave, 1-5
stars: Int!

# Comment about the movie
commentary: String
}

# The input object sent when someone is creating a new review
input ReviewInput {
# 0-5 stars
stars: Int!

# Comment about the movie, optional
commentary: String

# Favorite color, optional
favorite_color: ColorInput
}

# The input object sent when passing in a color
input ColorInput {
red: Int!
green: Int!
blue: Int!
}

type Starship {
# The ID of the starship
id: ID!

# The name of the starship
name: String!

# Length of the starship, along the longest axis
length(unit: LengthUnit = METER): Float

coordinates: [[Float!]!]
}

union SearchResult = Human | Droid | Starship

0 comments on commit bb35971

Please sign in to comment.