Last active
May 23, 2017 13:20
-
-
Save leocavalcante/9e61ca6065130e37737f24892d81fa40 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require_once __DIR__.'/vendor/autoload.php'; | |
use GraphQL\Type\Definition\ObjectType; | |
use GraphQL\Type\Definition\Type; | |
use GraphQL\Schema; | |
use GraphQL\GraphQL; | |
$queryType = new ObjectType([ | |
'name' => 'Query', | |
'fields' => [ | |
'echo' => [ | |
'type' => Type::string(), | |
'args' => [ | |
'message' => ['type' => Type::string()], | |
], | |
'resolve' => function ($root, $args) { | |
return $root['prefix'].$args['message']; | |
} | |
], | |
], | |
]); | |
$mutationType = new ObjectType([ | |
'name' => 'Calc', | |
'fields' => [ | |
'sum' => [ | |
'type' => Type::int(), | |
'args' => [ | |
'x' => ['type' => Type::int()], | |
'y' => ['type' => Type::int()], | |
], | |
'resolve' => function ($root, $args) { | |
return $args['x'] + $args['y']; | |
}, | |
], | |
], | |
]); | |
$schema = new Schema([ | |
'query' => $queryType, | |
'mutation' => $mutationType, | |
]); | |
$rawInput = file_get_contents('php://input'); | |
try { | |
$rootValue = ['prefix' => 'You said: ']; | |
$result = GraphQL::execute($schema, $rawInput, $rootValue); | |
} catch (\Exception $e) { | |
$result = [ | |
'error' => [ | |
'message' => $e->getMessage() | |
] | |
]; | |
} | |
header('Content-Type: application/json; charset=UTF-8'); | |
echo json_encode($result); |
Author
leocavalcante
commented
Sep 15, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment