如何在Snowflake REST API中添加jsonv2支持及解决调用报错
解决Snowflake REST API的jsonv2格式要求问题
你调用Snowflake REST API获取作业状态时遇到的错误(错误码391917),是因为该API端点仅支持jsonv2格式的响应,而当前请求指定的是标准JSON格式。
原请求命令
curl --location 'https://org-account.snowflakecomputing.com/api/v2/statements/<id>' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT' \ --header 'Authorization: Bearer <token>' \ --header 'User-Agent: service-client'
错误信息
{ "code": "391917", "message": "Invalid parameter. Only the jsonv2 format is allowed through this endpoint. Please check sql api query result format-related settings." }
解决方法
有两种方式可以满足jsonv2格式要求:
方法1:修改Accept请求头
将Accept头的值从application/json改为application/jsonv2,修改后的curl命令如下:
curl --location 'https://org-account.snowflakecomputing.com/api/v2/statements/<id>' \ --header 'Content-Type: application/json' \ --header 'Accept: application/jsonv2' \ --header 'X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT' \ --header 'Authorization: Bearer <token>' \ --header 'User-Agent: service-client'
方法2:在URL中添加format=jsonv2参数
在请求URL末尾追加?format=jsonv2参数,修改后的curl命令如下:
curl --location 'https://org-account.snowflakecomputing.com/api/v2/statements/<id>?format=jsonv2' \ --header 'Content-Type: application/json' \ --header 'Accept: application/json' \ --header 'X-Snowflake-Authorization-Token-Type: KEYPAIR_JWT' \ --header 'Authorization: Bearer <token>' \ --header 'User-Agent: service-client'
两种方法任选其一即可解决该错误,让API返回符合要求的jsonv2格式响应。
内容的提问来源于stack exchange,提问作者eigenharsha
相关产品推荐
相关产品推荐

