Я новичок в HotChocolate и пытаюсь использовать Po C. Я создал очень простой файл .graphql:
#camera.graphql
type Camera {
id: ID!
name: String!
}
type Query {
getCamera: Camera!
}
И очень простой. NET код для переноса камеры:
public class QlCamera
{
public static QlCamera New()
{
return new QlCamera
{
Id = Guid.NewGuid().ToString(),
Name = Guid.NewGuid().ToString()
};
}
public string Id { get; set; }
public string Name { get; set; }
}
, а также такой код для создания схемы:
public void CreateSchema()
{
string path = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var smBuilder = SchemaBuilder.New();
smBuilder.AddDocumentFromFile(path + "/GraphQL/camera.graphql");
smBuilder.AddResolver("Query", "getCamera", () => QlCamera.New());
var schema = smBuilder.Create();
}
В последней строке, однако, я получаю исключение: HotChocolate.SchemaException: 'Произошло несколько ошибок схемы: поле Camera.id
не имеет преобразователя. - Тип: Камера Поле Camera.name
не имеет резольвера. - Тип: Камера '
Я пытался создать:
public class QlCameraType : ObjectType<QlCamera>
{
protected override void Configure(IObjectTypeDescriptor<QlCamera> descriptor)
{
descriptor.Name("Camera");
descriptor.Field(t => t.Id).Type<NonNullType<StringType>>();
descriptor.Field(t => t.Name).Type<StringType>();
}
}
и заменить
smBuilder.AddResolver("Query", "getCamera", () => QlCamera.New());
на
smBuilder.AddResolver("Query", "getCamera", () => new QlCameraType());
Но Я продолжаю получать то же исключение.
Очевидно, что я что-то здесь упускаю, но я не могу понять, что именно. Может ли кто-нибудь объяснить мне, что я пропускаю?
(я несколько раз проходил через документацию, но не могу найти там соответствующую помощь)