第1章 OpenAPI Specification の概要

Red Hat 3scale API Management では、OpenAPI Specification (OAS) は OpenAPI ドキュメントを最適に管理するのに役立ちます。OpenAPI Specification (OAS) は、既存のサービスを更新したり、新しいサービスを作成したりするためのツールを提供します。

以下は、3scale の OAS に関する特別な留意事項です。

前提条件

  • API を定義する OpenAPI ドキュメント。
  • 3scale 2.13 インスタンステナントのクレデンシャル (token または provider_key)。

OAS を使用すると、3scale では以下の機能を使用することができます。

注記

OpenAPI ドキュメントのインポート時に、ActiveDocs を作成または更新します。3scale 仕様として使用する OpenAPI ドキュメントの作成方法 を参照してください。

  • 3scale サービスの system_name をオプションのパラメーターとして渡す機能 (デフォルトは OAS からの info.title フィールド)。
  • メソッドは、OpenAPI Specification で定義された各オペレーションに対して作成されます。

    • メソッド 名は operation.operationId フィールドから取得されます。
  • 既存の マッピングルール は、新規 API 定義をインポートする前にすべて削除されます。

    • コマンドの実行前から存在するメソッドは削除されません。
  • マッピングルールは、OpenAPI Specification で定義された各オペレーションに対して作成されます。
  • 以下のチャネルの 1 つによって、OpenAPI 定義リソースが提供されます。

    • 利用可能なパスの ファイル名
    • URL フォーマット (toolbox は所定のアドレスからダウンロードを試みます)
    • stdin 標準入力ストリームからの読み込み

1.1. 3scale で OpenAPI ドキュメントをインポートするためのコマンドラインオプション

3scale コマンドラインインターフェイス (CLI) は、3scale で管理する API を定義する OpenAPI ドキュメントをインポートするための複数のオプションを提供します。以下は、openapi オプションのヘルプ情報です。

NAME
    openapi - Import API definition in OpenAPI specification

USAGE
    3scale import openapi [opts] -d <dst> <spec>

DESCRIPTION
    Using an API definition format like OpenAPI, import to your 3scale API

OPTIONS
       -d --destination=<value>                   3scale target instance.
                                                  Format: "http[s]://<authentication>@3scale_domain"

 -t --target_system_name=<value>            Target system name

OPTIONS FOR IMPORT
    -c --config-file=<value>                      3scale toolbox
                                                  configuration file
                                                  (default:
                                                  $HOME/.3scalerc.yaml)
    -h --help                                     show help for this command
    -k --insecure                                 Proceed and operate even
                                                  for server connections
                                                  otherwise considered
                                                  insecure
    -v --version                                  Prints the version of this
                                                  command