/// <inheritdoc /> public IGraphQLQuery CreateQuery(Action <IGraphQLBuilder> builder, string url, HttpMethod httpMethod, string authorizationToken = null, string authorizationMethod = "Bearer", params GraphQLQueryArgument[] arguments) { var build = new GraphQLBuilder(); builder(build); // Get the fields and query var selectionSet = build.GetFields(); // Get query return(GetGraphQLQuery(GraphQLOperationType.Query, selectionSet, arguments, url, httpMethod, null, null, authorizationToken, authorizationMethod)); }
/// <inheritdoc /> public Task <dynamic> Execute(GraphQLOperationType operationType, Action <IGraphQLBuilder> builder, string url = null, HttpMethod httpMethod = null, IDictionary <string, string> headers = null, string authorizationToken = null, string authorizationMethod = "Bearer", CancellationToken cancellationToken = default, params GraphQLQueryArgument[] arguments) { // Get builder var build = new GraphQLBuilder(); builder(build); // Get the fields and query var selectionSet = build.GetFields(); // Execute return(Execute <dynamic>(operationType, selectionSet, arguments, url: url, httpMethod: httpMethod, headers: headers, filter: null, authorizationMethod: authorizationMethod, authorizationToken: authorizationToken, cancellationToken: cancellationToken)); }
public IGraphQLQuery CreateMutation(Action <IGraphQLBuilder> builder, string url, HttpMethod httpMethod, string authorizationToken = null, string authorizationMethod = "Bearer", params GraphQLQueryArgument[] arguments) { var build = new GraphQLBuilder(); builder(build); // Get the fields and query var fields = build.GetFields(); var query = _queryGenerator.GetMutation(fields, arguments); // Get query return(GetGraphQLQuery(query, url, httpMethod, authorizationToken, authorizationMethod)); }
static void Main(string[] args) { var query1 = GraphQLBuilder.GraphQL <Country>("country") .WithParam <GraphQLString>("code", "AD") as GraphQLQuery <Country>; var query2 = GraphQLBuilder.GraphQL <IEnumerable <Continent> >("continents") as GraphQLQuery <IEnumerable <Continent> >; var query3 = GraphQLBuilder.GraphQL <IEnumerable <Language> >(entity: "languages") as GraphQLQuery <IEnumerable <Language> >; var combinedQuery = query1 & query2 & query3; var q = combinedQuery.Query; var cqstr = combinedQuery.GetRequest(); var result = cqstr.WithUri("https://countries.trevorblades.com/").GetResponseAsync <CombinedQueryResult>().GetAwaiter().GetResult(); Console.WriteLine("Hello World!"); }
/// <summary> /// ASP.NET Core MVC Middleware for GraphQLCore /// </summary> /// <param name="services"></param> /// <param name="config"></param> /// <returns>An instance of IGraphQLBuilder that can be used to add types, queries, etc.</returns> public static IGraphQLBuilder AddGraphQL(this IServiceCollection services, Expression <Func <IGraphQLBuilder, IGraphQLBuilder> > config = null) { var builder = new GraphQLBuilder(services); if (config != null) { config .Compile() (builder) .Build(); return(null); } else { return(builder); } }
/// <summary> /// Add GraphQL services to the specified <see cref="IServiceCollection">IServiceCollection</see>. /// </summary> /// <param name="services"></param> /// <param name="configure">Action to configure the default schema.</param> /// <returns></returns> public static IGraphQLBuilder AddGraphQL(this IServiceCollection services, Action <SchemaConfiguration> configure) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (configure == null) { throw new ArgumentNullException(nameof(configure)); } services.AddSingleton <IDocumentExecuter, DocumentExecuter>(); var builder = new GraphQLBuilder(services); var schema = new SchemaConfiguration(null); configure(schema); return(builder.AddSchema(schema)); }