集合コントローラーでサブスクリプション API を使用して、新しい REST
API、削除された API、または API の変更 (特定集合メンバー・サーバーのエンドポイントでの変更など) について即時に知ることができます。
始める前に
/ibm/api/collective/docs/subscription API は、Liberty REST API
ディスカバリー・フィーチャーに含まれます。集合メンバー・サーバーの REST API の更新をサブスクライブするには、
まず、集合コントローラーについて『Liberty サーバー上の REST API 資料のディスカバー』の手順を完了してください。
手順
- サブスクリプションを使用可能にします。
集合コントローラーの server.xml ファイルに、
websocket-1.0 または websocket-1.1 のフィーチャーを追加します。例えば、以下のようにします。
<server>
<featureManager>
<feature>collectiveController-1.0</feature>
<feature>apiDiscovery-1.0</feature>
<feature>websocket-1.1</feature>
</featureManager>
<!-- some collective controller configurations are omitted -->
<httpEndpoint id="defaultHttpEndpoint"
host="*"
httpPort="8010"
httpsPort="8020"/>
<keyStore id="defaultKeyStore" password="Liberty"/>
<basicRegistry id="basic" realm="ibm/api">
<user name="bob" password="bobpwd" />
</basicRegistry>
</server>
/ibm/api/collective/docs/subscription エンドポイントでは、以下のフォーマットによる JSON ペイロードの POST 要求を可能にします。
{ "docType" : String }
String は、Swagger_20_JSON または Swagger_20_YAML です。
戻りの JSON ペイロードで、サブスクリプション・フィードのタイプとその URL の概要が示されます。
例えば、以下の要求
{"docType":"Swagger_20_JSON"}
これは、以下のような応答を戻します。
{
"feedType": "websocket",
"feedURL": "wss://myserver.com:8020/ibm/api/collective/docs/subscription/websocket/60db0d79-1863-48f5-a0f9-4fe22a27b82d"
}
- websocket クライアントを使用してフィード URL に接続します。
コードを作成するか、サード・パーティーの websocket クライアントを使用して、フィード URL に接続することができます。
接続されると、Liberty サーバーで REST API がさらに更新されたときに、websocket を通じてプッシュされます。
サブスクリプションに応じて、更新は、JSON フォーマットまたは YAML フォーマットのいずれかです。