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

在Retool中调用Sanity HTTP Query接口遇未知参数错误求助

解决Sanity GROQ GET请求在Retool中的参数编码错误问题

你碰到的错误根源在于:GET请求URL里的GROQ查询包含未编码的空格和特殊字符,Sanity API误把date(带空格)当成了一个独立的未知查询参数,而非GROQ语句的一部分。

解决方案步骤

1. 对GROQ查询做URL编码

GROQ里的空格、&、=这类字符在GET请求的URL中必须编码。你需要用encodeURIComponent()包裹整个查询字符串。

原始GROQ查询:

*[ _type == 'mytype' && date == '2024-01-17']

编码后会变成:

%5B+_type+%3D%3D+'mytype'+%26%26+date+%3D%3D+'2024-01-17'%5D

2. 在Retool中实现编码的两种方法

方法一:直接在URL中使用Retool内置函数

在Retool的HTTP请求配置里,把URL的query部分改成动态值,用Retool自带的encodeURIComponent()处理查询语句,示例:

https://<projectId>.apicdn.sanity.io/<YYYY-MM-DD>/data/query/<dataset>?query={{encodeURIComponent("*[ _type == 'mytype' && date == '2024-01-17']")}}

Retool会自动帮你完成编码,避免字符解析错误。

方法二:通过查询参数面板设置

在Retool HTTP请求的「Query Parameters」面板里,添加一个键为query的参数,值填写:

{{encodeURIComponent("*[ _type == 'mytype' && date == '2024-01-17']")}}

这种方式不用手动拼接URL,更不容易出错,Retool会自动处理编码。

3. 验证请求

发送请求后,查看Retool的请求详情,确认query参数的值已经被正确编码,没有未转义的空格或特殊字符。这时Sanity API就能正确识别整个GROQ查询,不会再抛出未知参数的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:40:07