Exemple #1
0
        /// <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));
        }
Exemple #2
0
        /// <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));
        }
Exemple #4
0
        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);
            }
        }
Exemple #6
0
        /// <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));
        }