Skip to content

Instantly share code, notes, and snippets.

View Cal30's full-sized avatar

Carlos Calatayud Cal30

View GitHub Profile
@Cal30
Cal30 / example_graphql.txt
Last active January 19, 2017 17:12
GraphQL Post - Query Structure
query {
root_field {
field
field {
field
}
...
}
}
@Cal30
Cal30 / ApiSchema.java
Created January 19, 2017 17:10
GraphQL Post - Query Object
return newObject()
.name("Query")
.description("Root query")
.field(newFieldDefinition()
.name("film")
.description("Find a film by id")
.argument(newArgument() // argumento (id: ID)
.name("id")
.description("Film ID")
.type(new GraphQLNonNull(GraphQLInt)))
@Cal30
Cal30 / GenericEmbeddedDataFetcher.java
Created January 19, 2017 17:07
GraphQL Post - Embedded DataFetcher
@Override
public Object get(DataFetchingEnvironment environment) {
if (environment.getSource() != null) {
Map source = (Map) environment.getSource();
if (connection) {
return resolveConnection(source, environment);
} else {
return resolveEntity(source);
}
@Cal30
Cal30 / GenericConnectionDataFetcher.java
Created January 19, 2017 17:06
GraphQL Post - Connection DataFetcher
@Override
public Object get(DataFetchingEnvironment environment) {
List<Object> list = new ArrayList<>();
Map page = (Map) restService.restRequest(getURI(), true);
while (page != null){
List results = (List) page.get("results");
String next = (String) page.get("next");
@Cal30
Cal30 / GenericArgumentIdDataFetcher.java
Created January 19, 2017 17:04
GraphQL Post - Argument DataFetcher
@Override
public Object get(DataFetchingEnvironment environment) {
// Extract 'id' argument from the GraphQL execution environment
if (environment.getArgument("id") != null){
return restService.restRequest(getURI()
.concat(environment.getArgument("id").toString())
.concat("/"), true);
}
return null;
}
@Cal30
Cal30 / ApiSchema.java
Created January 19, 2017 17:03
GraphQL Post - People query field
.field(newFieldDefinition()
.name("people")
.description("Find a character by id")
.argument(newArgument() // argumento (id: ID)
.name("id")
.description("People ID")
.type(new GraphQLNonNull(GraphQLInt)))
.type(new GraphQLTypeReference("People"))
.dataFetcher(peopleDataFetcher))
@Cal30
Cal30 / PeopleType
Created January 19, 2017 17:01
GraphQL Post - HomeWorld Relationship
.field(newFieldDefinition()
.name("homeworld")
.description("Planet where character took birth")
.type(new GraphQLTypeReference("Planet"))
.dataFetcher(homeworldEmbeddedDataFetcher)
.build())
@Cal30
Cal30 / FilmType.java
Last active January 19, 2017 16:55
GraphQL Post FilmType
return newObject()
.name("Film")
.description("Film - Represents an SW film")
.field(newFieldDefinition()
.name("director")
.description("Director of the film")
.type(Scalars.GraphQLString)
.build())