Liberty REST API 更新のサブスクライブ
Liberty REST API ディスカバリー・フィーチャーは現在、新しい REST API /ibm/api/docs/subscription を公開しています。これにより、新規の API が利用可能になる、古い API が削除されるといった REST API 更新をユーザーがサブスクライブすることができます。 特定の Liberty インスタンスで提供されるエンドポイントでの変更をすぐに通知してほしい場合に、これは便利です。
サブスクリプションの有効化
基本の apiDiscovery-1.0 構成に加えて、server.xml で websocket-1.0 または websocket-1.1 の構成も必要です。
<server>
<featureManager>
<feature>apiDiscovery-1.0</feature>
<feature>websocket-1.1</feature>
</featureManager>
<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/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/docs/subscription/websocket/60db0d79-1863-48f5-a0f9-4fe22a27b82d"
}
これで、websocket クライアントを使用してフィード URL に接続することができます。 接続されると、Liberty サーバーで REST API がさらに更新されたときに、websocket を通じてプッシュされます。 サブスクリプションに応じて、更新は、JSON フォーマットまたは YAML フォーマットのいずれかです。