xero-node SDK调用getInvoices返回Contact仅ID和名称非空其余字段为空
xero-node SDK调用getInvoices时返回Contact字段不全原因
该现象由Xero服务端接口的默认返回规则导致,和xero-node SDK实现无关:
- 所有列表类、明细类接口返回的嵌套关联资源,默认仅返回最小识别字段集。对应发票接口返回的Contact对象,默认仅填充
ContactID、联系人名称两个核心标识字段,其余联系人字段默认留空,不属于接口异常。 - 响应中附带Contact对象结构是接口Schema定义的固定行为,不会因为默认不返回全量字段就将嵌套对象置为null,因此会出现“对象存在但大部分字段为空”的表现。
处理方案
- 若仅需少量特定Contact字段,调用
getInvoices时可通过opts参数传入需要额外返回的Contact字段声明,接口会按声明返回对应字段,无需额外发起请求。 - 若需要完整Contact信息,不要遍历单条发票逐个调用联系人查询接口,先将所有返回结果中的
ContactID去重,再批量调用联系人查询接口一次性拉取全量联系人信息,可大幅减少请求量,避免触发接口限流。
内容的提问来源于stack exchange,提问作者ImTalkingCode
相关产品推荐
相关产品推荐

