У меня есть простая схема, которую я пытаюсь запросить следующим образом:
{
subQuery {
subObjectGraph {
Name
}
}
}
Но "graphiql" выдает следующую ошибку, даже не пытаясь выполнить мой запрос.
{
"errors": [
{
"message": "Expected non-null value, resolve delegate return null for \"$Api.Schema.Queries.MySubObjectGraphType\"",
"extensions": {
"code": "INVALID_OPERATION"
}
}
]
}
Что не так с моей схемой (ниже)?Я заново создаю SubObject, поэтому не понимаю, почему в сообщении об ошибке указано, что значение равно null.
public class Schema: GraphQL.Types.Schema
{
public Schema(IDependencyResolver resolver): base(resolver)
{
Query = resolver.Resolve<RootQuery>();
Mutation = null;
}
}
public class RootQuery: ObjectGraphType
{
public RootQuery(IDependencyResolver resolver)
{
Name = "Query";
Field<MySubQuery>(
name: "subQuery",
resolve: ctx => resolver.Resolve<MySubQuery>());
}
}
public class MySubQuery: ObjectGraphType
{
public MySubQuery()
{
Name = "TempSubQuery";
Field<StringGraphType>("SubQueryName", resolve: ctx => "Some string value");
Field<MySubObjectGraphType>(
name: "subObjectGraph",
resolve: ctx => FetchFromRepo());
}
//Repo access would go here, but just new-ing the object for now.
private SubObject FetchFromRepo()
{
return new SubObject() { Name = "some sub object" };
}
}
public class SubObject
{
public string Name { get; set; }
}
public class MySubObjectGraphType: ObjectGraphType<SubObject>
{
public MySubObjectGraphType()
{
Name = "MySubObject";
Description = "An object with leaf nodes";
Field(l => l.Name);
}
}
Код работает нормально, если я заменяю MySubObjectGraphType на StringGraphType, поэтому проблема должна бытьс конфигурацией MySubObjectGraphType.
Пожалуйста, помогите?Я использую v2.4.