Я работаю над GraphQL впервые. Я создал следующую мутацию с помощью https://code-maze.com/graphql-mutations/
public class CarInputType : InputObjectGraphType<Car>
{
public CarInputType()
{
Name = "carInput";
Field(x => x.Model);
Field(x => x.Make, true);
}
}
public class CarType : ObjectGraphType<Car>
{
public CarType()
{
Field(x => x.Model);
Field(x => x.Make, true);
Field(x => x.Color, true);
}
}
public class Car
{
public string Model{ get; set; }
public string Make{ get; set; }
public string Color{ get; set; }
}
public class Mutation : ObjectGraphType
{
public Mutation(ICarRepository carRepository)
{
Field<CarType>(
"createCar",
arguments: new QueryArguments(
new QueryArgument<NonNullGraphType<CarInputType>> { Name = "car" }
),
resolve: context =>
{
var car= context.GetArgument<Car>("car");
//trying to validate the car make here..but didn't work
return carRepository.AddCar(car);
}
);
}
}
Итак, моя мутация выглядит так:
mutation($car:carInput!){
createCar(car: $car){
model,
make
}
}
Аргумент запроса:
{
"car":{
"make":"Toyota",
"model":"Camry"
}
}
Есть ли способ, которым я мог бы проверить QueryArgument так, как аргумент запроса 'make' должен принимать только значения "Toyota" и "Honda". Попытка проверить его внутри распознавателя, но не сработала, потому что код там не дошел. Кроме того, после проверки есть ли способ отправить пользовательские ошибки в следующем формате:
"{
"status":"error",
"errormessage":"Only accepts Toyota and Honda as the Make right now"
}"
(Я не смог найти код валидатора для javascript, но не смог найти ни одной простой для понимания справки для. net)