Я хочу загружать файлы в своих мутациях, я не использую реле, просто чистый 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");
}
}