You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse Dataflow使用API请求体时失败的原因排查求助

问题分析与解决方案

核心差异与失败原因

  1. 变量类型不匹配
    Copy Data Activity中after变量的值是字符串类型的"null",而Dataflow中改为了JSON原生的null。GraphQL服务定义的$after参数类型是String,传递原生null会触发类型校验错误,这是最可能的失败原因。

  2. 请求体格式错误
    Dataflow中你将整个请求体用单引号包裹成了字符串,但HTTP连接器设置为JSON格式时,应该直接传递原生JSON对象,而非字符串化的JSON。这种格式会导致服务无法正确解析GraphQL请求。

  3. 潜在的转义与格式问题
    Query中的换行符\n在字符串化后可能被Dataflow错误解析,或者HTTP连接器对特殊字符的处理逻辑和Copy Data不同,导致请求结构损坏。

修复步骤

  1. 修正after变量值
    将"after": null改回和Copy Data一致的"after": "null",匹配GraphQL定义的String类型参数要求:

    {"query": "query RoomStays($first: Int!, $from: Date!, $to: Date!, $after: String) {\n  room_stays(\n    first: $first,\n    filter: {\n      reservation_from: { ge: $from },\n      reservation_to: { le: $to }\n    },\n    after: $after\n  ) {\n    pageInfo {\n      hasNextPage\n      endCursor\n    }\n    edges {\n      cursor\n      node {\n        check_in\n        check_out\n        gross\n        lodgingsGross\n        additionalSales\n        reservation_from\n        reservation_to\n        category {\n          name\n        }\n        reservation {\n          createdAt\n          bookingChannelCode\n          stayType {\n          \tname\n        \t}\n          client {\n            country\n          }\n          bookingSource {\n            name\n          }\n        }\n      }\n    }\n  }\n}","variables": {"after": "null","from": "2000-01-01","to": "2025-01-01","first": 10},"operationName": "RoomStays"}
    
  2. 调整请求体传递方式
    去掉请求体外层的单引号,直接将上述JSON内容填入Dataflow HTTP连接器的请求体中,同时确保连接器的Format设置为JSON。

  3. 添加必要请求头
    在HTTP连接器的Headers中添加Content-Type: application/json,确保GraphQL服务能正确识别请求格式。

  4. 可选:简化Query格式
    可以将Query中的换行符去掉,写成单行字符串,避免转义问题:

    {"query": "query RoomStays($first: Int!, $from: Date!, $to: Date!, $after: String) { room_stays(first: $first, filter: { reservation_from: { ge: $from }, reservation_to: { le: $to } }, after: $after) { pageInfo { hasNextPage endCursor } edges { cursor node { check_in check_out gross lodgingsGross additionalSales reservation_from reservation_to category { name } reservation { createdAt bookingChannelCode stayType { name } client { country } bookingSource { name } } } } } }","variables": {"after": "null","from": "2000-01-01","to": "2025-01-01","first": 10},"operationName": "RoomStays"}
    

内容的提问来源于stack exchange,提问作者Berat Cakir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:23:23