web-dev-qa-db-ja.com

SwaggerでWebSocketイベントまたはコールバックを文書化する方法

標準RESTを使用していくつかのリソースを取得できる設定があり、これはswaggerで簡単に文書化されます。同じリソースが変更されたときにWebSocketを使用してクライアントにプッシュされるため、クライアントは間隔ベースでプルを行う必要があります。

しかし、どうすればこれをswaggerで文書化できますか?可能ですか?そうでない場合、REST apiとwebsocketパーツの両方を文書化するために、他にどのツールを推奨しますか?

Swagger 3(またはOpenApi)は、Webhookを定義できるようにするコールバックの概念を追加した応答形式にアップグレードがあります。ドキュメントのこの部分を見てください: 応答フォーマット

Swagger 2で使用するのは、コールバックから期待するものとまったく同じものを実装するAPIメソッドを実装することです。コールバックを待機するメソッド。したがって、Swagger仕様を使用すると、どのコンシューマーも少なくとも私が期待しているメッセージのフォーマットを見ることができます。

1
Italo Borssatto

Swagger仕様では、スキーマ内の特定の パスオブジェクト に対して定義できる操作の限定されたセットが定義されています。とはいえ、APIを人間が使用するために文書化することだけに関心がある場合は、仕様の外に出ることができます。たとえば WIX docs を見てください。カスタムHOOK定義を使用して、そのWebhook APIを文書化し、有効なSwagger仕様であるように見せかけません。

0
Anatoly

今日、「非同期通信を使用してAPIを文書化する方法」について明確な答えを見つけることは困難です。これは、websocketだけでなく、 Server Send events などについても関係しています。

今日、Rest仕様については多くの有名な仕様があり、上位3つは次のとおりです。- Swagger - [〜#〜] raml [〜#〜] - APIブループリント

彼らはwebsocketを使用してAPIを文書化する方法について多くの問題/議論です...

しかし、Swaggerはコミュニティの助けを借りてAPI仕様を標準化しています。 OpenApi という名前です。

OpenAPI仕様のバージョン3では、 document webhook/callback への方法が導入されています。

もう1つの優れた仕様は asyncapi.com で、これはさらに深くなり、読み取り可能なopenApi仕様を尊重します。

0
JoG