REST API について
REST APIは、Juniper Networks Junosオペレーティングシステム(Junos OS)デバイスへのセキュアな接続、リモートプロシージャコール(rpc コマンド)の実行、REST API ExplorerのGUIを使用したREST APIエクスプローラGUIの使用を可能にするREST(Representational State Transfer)インターフェイスであり、あらゆるREST APIを簡単に試すことができ、さまざまなフォーマットと表示オプションを使用できます。 これには JavaScript Object Notation (JSON) も含まれます。
REST APIは、 [edit system services rest] 階層レベルで使用可能なコマンドを使用して、Junos OSデバイスに設定できます。設定が完了すると、REST APIは rest サービスとして利用可能になります。RESTベースのインターフェイスで、遠隔地からデバイスに rpc コマンドを送信し、GETおよびPOSTリクエストをサポートします。REST API を使用すると、次のことができます。
-
GET 要求を使用して、
rpcコマンドを送信します。 -
POST 要求を使用して、
rpcコマンドで情報を送信します。 -
設定情報をXML、ASCII(プレーンテキスト)、またはJSONで取得します。
-
運用データを XML、ASCII、または JSON で取得します。
[edit system services rest]階層レベルでは、Junos OSデバイス上でREST APIサービスを設定および保護し、IPアドレス、ポート番号、サーバー証明書、制御パラメーター、トレースオプションを設定し、便利なGUIを使用してREST APIを試すことができるREST APIエクスプローラーツールを有効にすることができます。
以下の CLI 表示オプションを使用できます。
-
display jsonオプションが |(パイプ)命令。例えば、CLIコマンドshow interfaces | display json、インターフェイスをJSON表記で表示します。 -
NETCONF サーバーのコマンドに、運用情報を JSON 表記で返すための
format="json"オプションが追加されました。
REST API 受信要求のペイロード サイズは 1174 KB を超えることはできません。
回避策: 受信 REST API 要求を小さいサイズに分割します。
REST API は HTTP 基本認証をサポートしており、すべての要求には Authorization ヘッダーに含まれる base64 でエンコードされたユーザー名とパスワードが必要です。HTTPとHTTPSの両方をサポートしています。
-
セキュアな接続が必要ない場合は、HTTP を使用してクリアテキストでコンテンツを交換できます。
-
HTTPS を使用し、利用可能な暗号スイートの 1 つを使用して暗号化されたコンテンツを交換することをお勧めします。クライアント認証なしでサーバー認証を要求するように REST API を構成することも、相互認証を構成することもできます。
デバイスでREST APIが構成されると、新しいRESTエンドポイントを使用して、GETまたはPOSTリクエストを介して単一の rpc コマンドを実行したり、単一のPOSTリクエストを介して複数の rpc コマンドを実行したりできます。詳細については、「 REST API への GET 要求の送信 」および 「REST API への POST 要求の送信 」を参照してください。
Junos OSは、コンパクトなJSON形式での動作状態データの出力をサポートしています。JSON データをコンパクトな形式で出力するには、[edit system export-format state-data] 階層レベルで json compact ステートメントを設定します。それ以外の場合、デバイスはデフォルトで非コンパクト形式で JSON データを出力します。
REST API には REST API Explorer という GUI も用意されており、REST API の使用方法を簡単かつ迅速に学習できます。デフォルトでは無効になっていますが、 set system services rest enable-explorerを指定することで有効にできます。REST API Explorer の詳細については、「 例: REST API Explorer の使用」を参照してください。
変更履歴
サポートされる機能は、使用しているプラットフォームとリリースによって決まります。特定の機能がお使いのプラットフォームでサポートされているかどうかを確認するには、 Feature Explorer を使用します。
[edit system export-format state-data json]階層レベルで
compactステートメントは非推奨になりました。