I am trying to query my database using Hot Chocolate GraphQL but my schema fails to load and I cant seem to figure out why.
Here are the following relevent files
Program.cs
using StockMarketReport.Api.Extensions;
var builder = WebApplication.CreateBuilder(args);
// Add configuration for connecting to SQL Server
builder.Services.SetUpApiServices(builder.Configuration, builder.Environment);
var app = builder.Build();
await app.ApplyApiServices(builder.Environment)
.RunWithGraphQLCommandsAsync(args);
app.UseRouting();
app.Run();
ApplicationBuilderExtension.cs
public static class ApplicationBuilderExtensions
{
internal static WebApplication ApplyApiServices(this WebApplication app, IHostEnvironment env)
{
app
.UseStatusCodePages()
.UseRouting();
app.MapGraphQL().WithOptions(new GraphQLServerOptions
{
EnableSchemaRequests = true,
Tool = {
Enable = env.IsDevelopment()
}
});
return app;
}
}
ServicesExtensions.cs
public static class ServicesExtensions
{
public static IServiceCollection SetUpApiServices(this IServiceCollection services, IConfiguration cfg, IWebHostEnvironment env)
{
services.AddControllers();
services.ApplyGraphQlServices(cfg, env);
return services;
}
internal static IRequestExecutorBuilder ApplyGraphQlServices(this IServiceCollection services, IConfiguration cfg, IWebHostEnvironment env)
{
services
.AddAutoMapper(typeof(GeneralMapping))
.AddPooledDbContextFactory<StockMarketContext>((_, options) =>
{
options.UseSqlServer(cfg.GetConnectionString("ConnectionString"), conf =>
{
conf.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
conf.CommandTimeout(100);
});
})
.AddScoped(p => p.GetRequiredService<IDbContextFactory<StockMarketContext>>().CreateDbContext());
return services
.AddGraphQLServer()
.AddQueryType<Query>()
.RegisterService<IMapper>()
.RegisterDbContext<StockMarketContext>(DbContextKind.Pooled)
.AddTypes()
.AddFiltering()
.AddSorting()
.AddProjections();
}
}
query.cs
[QueryType]
public class Query
{
[UsePaging(IncludeTotalCount = true), UseProjection, UseFiltering, UseSorting]
[GraphQLDescription("The Description of an Entire Industry")]
public static IQueryable<IndustriesDto> GetIndustries(StockMarketContext ctx, IMapper mapper)
=> ctx.Industries.AsNoTracking().ProjectTo<IndustriesDto>(mapper.ConfigurationProvider);
[UsePaging(IncludeTotalCount = true), UseProjection, UseFiltering, UseSorting]
[GraphQLDescription("The Description of an Entire Industry")]
public static IQueryable<CompanyDto> GetCompany(StockMarketContext ctx, IMapper mapper)
=> ctx.Company.AsNoTracking().ProjectTo<CompanyDto>(mapper.ConfigurationProvider);
[UsePaging(IncludeTotalCount = true), UseProjection, UseFiltering, UseSorting]
[GraphQLDescription("The Description of an Entire Industry")]
public static IQueryable<CompetitorsDto> GetCompetitors(StockMarketContext ctx, IMapper mapper)
=> ctx.Competitors.AsNoTracking().ProjectTo<CompetitorsDto>(mapper.ConfigurationProvider);
[UsePaging(IncludeTotalCount = true), UseProjection, UseFiltering, UseSorting]
[GraphQLDescription("The Description of an Entire Industry")]
public static IQueryable<MarketTechnicalsDto> GetMarketTechnicals(StockMarketContext ctx, IMapper mapper)
=> ctx.MarketTechnicals.AsNoTracking().ProjectTo<MarketTechnicalsDto>(mapper.ConfigurationProvider);
[UsePaging(IncludeTotalCount = true), UseProjection, UseFiltering, UseSorting]
[GraphQLDescription("The Description of an Entire Industry")]
public static IQueryable<StockGraphDto> GetStockGraph(StockMarketContext ctx, IMapper mapper)
=> ctx.StockGraph.AsNoTracking().ProjectTo<StockGraphDto>(mapper.ConfigurationProvider);
}
If you need to see something else to further help explain my problem then please let me know. Below is the error I get when I run banancakepop
“We were not able to fetch the Schema. Please make sure that you’re connected to the internet, using a correct endpoint, the server isn’t down and you’re not facing any CORS issues. Click on Details to find out more.
“
I am trying to query my Database using a third party library Hot Chocolate with .Net but the schema wont load that I need to query my database. As a result I get the following error:
“We were not able to fetch the Schema. Please make sure that you’re connected to the internet, using a correct endpoint, the server isn’t down and you’re not facing any CORS issues. Click on Details to find out more.
“
Loic Yatou is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.