使用Insomnia REST客户端测试GraphQL Subscription报错,是否支持该功能?
解决Insomnia测试GraphQL Subscription报错"The response type is not supported"的问题
Insomnia原生不支持通过GraphQL请求类型直接测试GraphQL Subscription,你遇到的报错正是因为用了错误的请求类型——GraphQL请求仅适配HTTP协议的Query/Mutation操作,无法处理基于WebSocket的Subscription。正确的做法是改用WebSocket请求类型手动实现GraphQL Subscription的协议流程:
- 新建WebSocket请求,填写你的GraphQL Subscription对应的WebSocket端点(通常以
ws://或wss://开头,比如ws://your-api-domain/graphql) - 连接成功后,先发送初始化消息(符合graphql-ws协议规范):
{ "type": "connection_init", "payload": {} // 若需认证,在此处添加授权信息,例如{"Authorization": "Bearer your-token"} } - 收到服务器返回的
connection_ack类型响应后,发送订阅请求:{ "id": "sub-1", // 自定义唯一ID,用于标识当前订阅会话 "type": "subscribe", "payload": { "query": "subscription { yourSubscriptionField { id content } }", "variables": {} // 如有订阅变量,在此处传入 } } - 后续服务器会推送
next类型的消息,包含订阅的实时数据:{ "id": "sub-1", "type": "next", "payload": { "data": { "yourSubscriptionField": { "id": "1", "content": "new update" } } } } - 若要取消订阅,发送结束消息:
{ "id": "sub-1", "type": "complete" }
内容的提问来源于stack exchange,提问作者eddex
相关产品推荐
相关产品推荐

