[英]Graphql-Mutation : Schema Exception
我正在嘗試使用 HotChocolate 實現 GraphQL -mutation。 但是架構(https://localhost:1234/graphql?sdl)存在一些問題,我得到了未處理的異常:
架構生成器無法識別架構的查詢類型。 指定哪種類型是查詢類型,或者將模式構建器設置為非嚴格驗證模式。
SchemaException:有關更多詳細信息,請查看
Errors
屬性。 1. 架構構建器無法識別架構的查詢類型。 指定哪種類型是查詢類型,或者將模式構建器設置為非嚴格驗證模式。
我的突變代碼:
using HotChocolate
public class Book
{
public int Id { get; set; }
[GraphQLNonNullType]
public string Title { get; set; }
public int Pages { get; set; }
public int Chapters { get; set; }
}
public class Mutation
{
public async Task<Book> Book(string title, int pages, string author, int chapters)
{
var book = new Book
{
Title = title,
Chapters = chapters,
Pages = pages,
};
return book;
}
}
我在 API startup.cs 文件中添加了以下內容
public void ConfigureServices(IServiceCollection services)
{
services.AddGraphQLServer().AddMutationType<Mutation>();
}
你可以試試這個:
public void ConfigureServices(IServiceCollection services)
{
services.AddGraphQLServer()
.ConfigureSchema(sb => sb.ModifyOptions(opts => opts.StrictValidation = false))
.AddMutationType<Mutation>();
}
當您僅注冊突變類型時,這似乎會發生。 如果您還注冊了查詢類型,該錯誤就會消失。
因此,您可以將以下內容添加到您的代碼中
public class Query
{
public string HelloWorld()
{
return "Hello, from GraphQL!";
}
}
並將其注冊到您的服務中:
public void ConfigureServices(IServiceCollection services)
{
services.AddGraphQLServer()
.AddMutationType<Mutation>()
.AddQueryType<Query>();
}
顯然這不是一個理想的解決方案,因為您可能打算讓您的 API 僅具有突變(盡管這可能不太可能)。 如果像我一樣,您的 API 將同時支持查詢和突變,但您剛剛開始構建突變,您現在可以將此查詢添加為占位符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.