0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API GatewayでMockを統合したWebSocket APIを作成

0
Posted at

API GatewayでMockを統合したWebSocket APIを作成

やりたいこと

API Gatewayを使ってWebSocket通信を実装できるらしい。
とりあえずつながることを確認するためにLambdaなどバックエンドを作らずにMock統合で接続したい。

方法

英語ですが、良い資料が見つかりました。
https://stackoverflow.com/questions/55594587/setup-a-basic-websocket-mock-in-aws-apigateway

この資料を参考に独自に設定していきたいとおもいます。

  1. WebSocket Apiを作成する
    API名を「MockWebSocketAp」ルート選択式を「request.body.message」とします。
    image.png

  2. $connectルートを事前定義

  3. $connectにMockを統合

    $disconnectルート(切断したときのルート)、$default($connect, $disconnect以外のルート)もありますが、今回は接続できたら良しとするので$connectルートのみ設定していきます。

  4. ステージ名を「production」で作成

  5. $connectのルートに双方向通信を有効にしてデプロイ
    これによってクライアント→サーバー、サーバー→クライアントへの通信が可能になります。
    スクリーンショット 2026-10-16 233624.png
    スクリーンショット 2026-10-16 233624.png

  6. この状態でクライアントからの通信を試してみる
    スクリーンショット 2026-10-16 235616.png
    ステータスコード500が返ってきました。
    Mock統合のWebSocket APIでステータスコード200を返すにはRest Api同様、統合リクエストで{"statusCode": 200}を渡してあげる必要があるみたいです。
    https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/how-to-mock-integration.html

  7. $connectの統合リクエストタブを選択

  8. テンプレート選択式を200を作成
    スクリーンショット 2026-10-17 013154.png

  9. 「テンプレートを作成」をクリックし、テンプレートキーを200 テンプレートを{"statusCode": 200}で作成(テンプレート選択式とテンプレートキーは200じゃなくても構いませんが、値は一致させる必要があります)
    image.png

  10. $connectの統合レスポンスタブを選択

  11. 統合レスポンスを作成ボタンをクリックし、レスポンスキーに$defaultまたは200を入力してレスポンスを作成
    image.png
    (レスポンスキーはバックエンドからのステータスコードの正規表現を設定することでレスポンスをルーティングすることができます。
    レスポンスキーに$defaultにすることでステータスコードが設定したレスポンスキーのどれにも当てはまらなかった場合のレスポンスを作成することができます)

ここまで設定できたら再びAPIのデプロイを行い、接続を試みてみます。
スクリーンショット 2026-10-17 021943.png
接続できてるっぽいです。

$defaultルートを設定してあげることでさらに拡張して実装できそうですが、今回はWebSocket APIとりあえず試してみたかっただけなので、$connectルートのみ設定しました。

まとめ

以上がAPI GatewayでのWebsocket API(Mock統合)の作成手順でした。
Lambda + DynamoDBでchatアプリなど本格的なソケット通信を実装できるみたいなので今度そちらの検証もしていけたらなと思います。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/websocket-api-chat-app.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?