第1章 OpenAPI 仕様の概要

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

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

前提条件

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

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

注記

OpenAPI ドキュメントのインポート時に、ActiveDocs を作成または更新します。How to write an OpenAPI document for use as a 3scale specification を参照してください。

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

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

    • コマンドの実行前から存在するメソッドは削除されません。
  • マッピングルールは、OpenAPI 仕様で定義された各オペレーションに対して作成されます。
  • 以下のチャネルの 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