public HumanType(StarWarsData data) { Name = "Human"; Field(h => h.Id).Description("The id of the human."); Field(h => h.Name, nullable: true).Description("The name of the human."); Field <ListGraphType <CharacterInterface> >("friends", resolve: context => data.GetFriends(context.Source)); Field <ListGraphType <EpisodeEnum> >("appearsIn", "Which movie they appear in."); Field(h => h.HomePlanet, nullable: true).Description("The home planet of the human."); Interface <CharacterInterface>(); }
public DroidType(StarWarsData data) { Name = "Droid"; Description = "A mechanical creature in the Star Wars universe."; Field(d => d.Id).Description("The id of the droid."); Field(d => d.Name, nullable: true).Description("The name od the droid."); Field <ListGraphType <CharacterInterface> >("friends", resolve: context => data.GetFriends(context.Source)); Field <ListGraphType <EpisodeEnum> >("appearsIn", "Which movie they appear in."); Field(d => d.PrimaryFunction, nullable: true).Description("The primary function of the droid."); Interface <CharacterInterface>(); }
public StarWarsQuery(StarWarsData data) { Name = "Query"; Field <CharacterInterface>("hero", resolve: context => data.GetDroidByIdAsync("3")); Field <HumanType>("human", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "id", Description = "id of the human" }) , resolve: context => data.GetHumanByIdAsync(context.GetArgument <string>("id"))); Field <DroidType>("droid", arguments: new QueryArguments( new QueryArgument <NonNullGraphType <StringGraphType> > { Name = "id", Description = "id of the droid" }) , resolve: context => data.GetDroidByIdAsync(context.GetArgument <string>("id"))); }