如果后端返回空值,GraphQL数据加载器将失败



我有一个GraphQL对象类型Student。每个学生可能有也可能没有手机数据。Phone是另一个GraphQL类型的对象(Student中的子对象(。

我在手机上注册了GraphQL数据加载器。只要每个学生记录都有相应的电话记录,一切都很好。但是,如果有任何学生记录没有相应的电话记录,Dataloader会失败,并出现错误:

"message": "Exception while fetching data (/students[0]/phone) : The size of the promised values MUST be the same size as the key list",

我相信这是因为,dataloader试图断言列表中键的大小应该和列表中解析的值的大小相同。

有没有接受null作为值,这在我的需求中是有效的。

发现后端服务器甚至没有发送"null",它只是忽略了丢失的记录。

官方来源:https://github.com/graphql-java/java-dataloader/blob/7bf46ea182b1f8ab255c3107b1b61d4afd36ad88/src/main/java/org/dataloader/BatchLoader.java

Dataloader不支持空值:

*
* <pre>
*  [
*      { id: 2, name: 'San Francisco' },
*      { id: 9, name: 'Chicago' },
*      null,
*      { id: 1, name: 'New York' }
* ]
* </pre>

最新更新