GraphQL dotnet загружает файлы в мутации без использования реле - PullRequest
0 голосов
/ 26 апреля 2019

Я хочу загружать файлы в своих мутациях, я не использую реле, просто чистый Graphql dotnet

здесь вы можете увидеть, насколько прост мой класс запуска

public class Startup
{
    // This method gets called by the runtime. Use this method to add services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    { 
        //Registering types and services
        services.AddSingleton<ICategoryService, CategoryService>();
        services.AddSingleton<CategoryType>();

        services.AddSingleton<IProductService, ProductService>();
        services.AddSingleton<ProductType>();
        services.AddSingleton<ProductInputType>();
        services.AddSingleton<Mutations>();

        services.AddSingleton<Queries>();
        services.AddSingleton<MainSchema>();
        //registering GraphQL dependency resolver
        services.AddSingleton<IDependencyResolver>(
            c => new FuncDependencyResolver(type => c.GetRequiredService(type)));


        services.AddGraphQL(options =>
        {
            options.EnableMetrics = true;
            options.ExposeExceptions = true;
        })
          .AddWebSockets() // Add required services for web socket support
          .AddDataLoader(); // Add required services for DataLoader support
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseDefaultFiles();
        app.UseStaticFiles();

        app.UseWebSockets();

        // use graphiQL middleware at default url /graphiql

        app.UseGraphQLWebSockets<MainSchema>("/graphql");
        app.UseGraphQL<MainSchema>();
    }
}

до сих порЕдинственная идея для моей мутации - использовать base64 в качестве типа данных для прикрепленного файла, я знаю, что это не оптимальное решение.

Я видел один и тот же вопрос везде, но для людей, которые используют relay,в моем случае я новичок в graphql, поэтому я ищу наиболее упрощенный подход

, это мой тип входного графа

  public class ProductInputType : InputObjectGraphType
{
    public ProductInputType()
    {
        Name = "ProductInput";

        Field<NonNullGraphType<StringGraphType>>("Code");
        Field<NonNullGraphType<StringGraphType>>("Name");
        Field<NonNullGraphType<StringGraphType>>("Description");
        //I want to use this field for the image 
        Field<NonNullGraphType<GraphQL.Types.StringGraphType>>("Image");

    }
}
...