用CLI工具验证GraphQL订阅的运行使用CLI命令来验证GraphQL订阅的操作情况

首先

这篇文章是一休网2023年Advent Calendar的第2篇文章。

在实现GraphQL订阅字段时,通常可以通过GUI进行功能验证。我通常在Apollo Studio中开发时,同时浏览下面的界面。

スクリーンショット 2023-12-02 20.05.53.png

然而,作为一名工程师,也希望能够通过CLI进行确认。因此,本次将介绍如何使用CLI进行GraphQL订阅的操作确认,作为一个小技巧。

环境

    • GraphQLサーバーフレームワーク: Apollo Server

 

    • プロトコル: websocket

 

    websocketライブラリ: graphql-ws

操作步骤 (Caozuo buzhou)

    1. 使用 wscat 进行连接

 

    1. wscat -s graphql-transport-ws -c ws://127.0.0.1/graphql

 

    1. 已连接(按下 CTRL+C 退出)

在超时之前急忙发送 init 消息
> {“type”: “connection_init”}
< {“type”:”connection_ack”} 发送查询 > {“id”:”hoge”,”type”:”subscribe”,”payload”:{“query”:”subscription ($restaurantId: Int!, $groupId: String!, $date: Date!) {\n group(groupId: $groupId) {\n restaurant(restaurantId: $restaurantId) {\n operatingDay(date: $date) {\n reservations {\n reservationId\n visitDateTime {\n begin\n end\n }\n guest {\n name\n }\n }\n }\n }\n }\n}”,”variables”:{“restaurantId”:***,”groupId”:”ikyu”,”date”: “2023-12-02”}}}
< {“id”:”hoge”,”type”:”next”,”payload”:{“data”:{“group”:{“restaurant”:{“operatingDay”:{“reservations”:[]}}}}}}

触发 publish 并接收更新的结果
< {“id”:”hoge”,”type”:”next”,”payload”:{“data”:{“group”:{“restaurant”:{“operatingDay”:{“reservations”:[{“reservationId”:”32a88f68-71fc-4492-aba5-4d2171b3f87e”,”visitDateTime”:{“begin”:”2023-12-02T11:00:00.000Z”,”end”:”2023-12-02T13:00:00.000Z”},”guest”:{“name”:”ミーア・ルーナ・ティアムーン”}}]}}}}}}

感受

如果有一种工具能够包装并以透明的方式处理wscat,使其在GraphQL文本上容易使用,那么我认为即使在GraphQL上下文中,wscat这个具有独特对话接口的程序也可以很好地使用。如果您知道或制作了这样的工具,请告诉我。

参考可以是一个有效的资源或指南,用于获取有关特定主题的信息或建议。

 

广告
将在 10 秒后关闭
bannerAds