Я пытаюсь создать мутацию, которая принимает коллекцию. Сервер GraphQL написан на ядре c # .net и использует GraphQL.Net.
Это мой тип ввода;
public class PupilReportInputType : InputObjectGraphType<PupilReport>
{
public PupilReportInputType()
{
Name = "PupilReportInput";
Field(pr => pr.PupilId);
Field(pr => pr.PupilMetricCollections, type: typeof(ListGraphType<PupilMetricCollectionInputType>));
}
}
Используя GraphiQL, я попытался опубликовать следующую мутацию;
mutation getPupilReportText($pupilReport: PupilReportInput!) {
getPupilReportText(pupilReport: $pupilReport)
}
со следующей переменной;
{
"pupilReport": {
"pupilId" : 5,
"pupilMetricCollections": {
"pupilMetricCollection" : {
"pupilId" : 5
}
}
}
}
Я получаю ответ:
{
"errors": [
{
"message": "Variable '$pupilReport.pupilMetricCollections[0]' is invalid. Unable to parse input as a 'PlayerMetricCollectionInput' type. Did you provide a List or Scalar value accidentally?",
"extensions": {
"code": "INVALID_VALUE"
}
}
]
}
Если в PupilReportInputType
удалено поле PupilMetricCollections
и переменные мутации скорректированы аналогично, тогда запрос ведет себя как ожидалось (не ошибки). Точно так же, если я изменю переменную input и PupilReportInputType
так, чтобы поле было просто PupilMetricCollectionInputType
, а не ListGraphType<PupilMetricCollectionInputType>
, тогда я смогу заставить все это работать.
Как передать коллекцию на PupilMetricCollectionInputType
? Нужен ли мне какой-нибудь ListGraphInputType?