如何将字节数组(Blob)发送给GraphQL突变

时间:2019-08-11 02:16:21

标签: graphql insomnia graphql-mutation graphql-playground

我们有一个带有字节数组(Blob)字段的GraphQL突变。如何使用Insomnia或GraphQL Playground之类的工具发送字节数组数据来测试API?

mutation {
  saveSomething(something: {
    contentByteArray: [97, 110, 103, 101, 108, 111]
  }) {
    content
  }
}

1 个答案:

答案 0 :(得分:0)

你可以发送这样的数据,但是我知道 GraphQL 发送一个List 字节而不是一个数组。在 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;
    }
}