Как отправить байтовый массив (Blob) в мутацию GraphQL
У нас есть мутация GraphQL с полем байтового массива (Blob). Как я могу использовать такие инструменты, как Insomnia или GraphQL, чтобы отправлять данные байтового массива для тестирования API?
mutation {
saveSomething(something: {
contentByteArray: [97, 110, 103, 101, 108, 111]
}) {
content
}
}
1 ответ
Вы можете отправлять такие данные, однако я понимаю, что GraphQL отправляет список байтов, а не массив. В C# такое поле (я загружаю фото) будет описано как
Field<ListGraphType<ByteGraphType>>("photo");
и его нужно будет преобразовать обратно в массив для сохранения в базе данных, например
IDictionary<string, object> dicPlayer = (IDictionary<string, object>)context.Arguments["input"];
...
if (dicPlayer.ContainsKey("photo")) {
if (dicPlayer["photo"] == null) {
playerInput.Photo = null;
} else {
List<byte> lstB = new List<byte>();
foreach (var objB in (List<object>)dicPlayer["photo"]) {
byte b = (byte)objB;
lstB.Add(b);
}
byte[] arrB = lstB.ToArray();
playerInput.Photo = arrB;
}
}