WebSocket は、単一の TCP 接続上で全二重通信を可能にする API 技術です。従来の HTTP リクエストと比較して、WebSocket は低レイテンシーかつ高効率です。オンラインゲーム、リアルタイムチャットなど、持続的な接続とリアルタイムのデータ送信を必要とするシナリオに適しています。WebSocket API 管理は、Apidog バージョン 2.2.34 以降でサポートされています。
WebSocket エンドポイントの作成#
HTTP プロジェクト内で WebSocket エンドポイントを作成できます。1.
左側の + ボタンをクリックし、New WebSocket を選択します。
2.
ws または wss で始まる WebSocket サーバー URL を入力します。
4.
WebSocket エンドポイントを切断するには、Disconnect をクリックします。
最適な体験を得て WebSocket API のすべての機能を利用するには、Apidog クライアントの使用をおすすめします。
メッセージの送信#
WebSocket 接続を確立した後、Message タブでメッセージを作成できます。Text、JSON、XML、HTML などのテキスト形式でメッセージを直接作成できるほか、Base64 または Hexadecimal を使用してバイナリ形式のメッセージも作成できます。エディターは、選択したメッセージ形式に基づいてメッセージ内容に構文ハイライトを適用します。メッセージが JSON、XML、または HTML 形式の場合、入力内容をフォーマットすることもできます。メッセージの表示#
下部の Messages セクションには、接続ステータス、送信済みメッセージ、受信済みメッセージが時系列で表示されます。単一のメッセージをクリックすると、右側で詳細を表示できます。テキスト形式のメッセージの場合、デフォルトでフォーマット済みメッセージが表示されます。メッセージ形式とエンコーディングは手動で切り替えることができます。
バイナリ形式のメッセージの場合、デフォルトでメッセージの Hexdump が表示されます。Base64 でエンコードされたメッセージや元のメッセージを表示することもできます。
ハンドシェイクリクエストパラメータの追加#
認証やその他の複雑なシナリオに対応するため、WebSocket ハンドシェイク時に必要な Params、Headers、Cookies などのパラメータをカスタマイズできます。ハンドシェイクリクエストパラメータは、接続が確立された後は変更できません。接続を確立する前、または切断した後に設定する必要があります。
変数の使用#
WebSocket 接続のハンドシェイクおよびメッセージでは、Apidog 変数を使用できます。詳細については、変数の使用をご覧ください。API ドキュメント#
WebSocket API に status、responsible person、tags を設定し、Markdown 形式で詳細な API 説明を提供できます。また、WebSocket API ドキュメントを外部チームと共有し、ブラウザーで直接閲覧してもらうこともできます。API の保存#
デバッグが完了したら、Save ボタンをクリックして、WebSocket API を HTTP プロジェクトのディレクトリツリーに保存します。これにより、他のチームメンバーが API をデバッグしたり、API ドキュメントを表示したりできます。FAQ#
A: WebSocket リクエストでは、接続確立時の HTTP ステータスコードは、プロトコルのアップグレードが成功したことを示す 101 である必要があります。そのため、通常はステータスコードの検証は必要ありません。Q: Auth タブがありません。WebSocket API はどのように認証できますか?A: 現在、WebSocket API 認証には次の 2 つの方法をおすすめします。1.
接続確立時に、認証情報を Param、Header、または Cookie フィールドで渡します。
Q: Apidog は WebSocket API でプリリクエスト/テストスクリプトおよびアサーションをサポートしていますか?A: 現時点ではサポートしていませんが、この機能は今後のイテレーションで評価される予定です。Q: リクエスト例とレスポンス例はサポートされていますか?A: 現時点ではサポートしていませんが、この機能は今後のイテレーションで評価される予定です。Q: WebSocket API がモックをサポートしていないのはなぜですか?A: 現在のモックライブラリは WebSocket API 定義をサポートしていないため、定義に基づいてメッセージボディを生成できません。