第1章 OAS をベースとした新しいサービスの作成
1.1. はじめに
本章では、Red Hat 3scale API Management 2.9 での OpenAPI Specification (OAS) 機能の概要、および既存サービスの更新や新規サービスの作成を行う手順について説明します。
以下は、3scale の OAS に関する特別な留意事項です。
- 3scale toolbox で OpenAPI 仕様をインポートすることもできます。詳細は、『3scale の操作』の「OpenAPI 定義のインポート」を参照してください。
- 3scale 2.8 では、OAS3.0 の変更が複数加えられました。詳細は、「3scale での OAS 3.0 の使用」を参照してください。
1.2. 前提条件
- OpenAPI Specification (OAS)
-
3scale 2.9 インスタンステナントのクレデンシャル (
token
またはprovider_key
)
1.3. OpenAPI Specification の機能
ActiveDocs は、OpenAPI (OAS) のインポート時に作成、更新されます。
-
サービスの
system_name
をオプションのパラメーターとして渡すことができ、そのデフォルトは OAS からの info.title フィールドです。 メソッドは OAS からの各操作に対して作成されます。
-
メソッド 名は
operation.operationId
フィールドから取得されます。
-
メソッド 名は
既存の マッピングルール は、新規 API 定義をインポートする前にすべて削除されます。
- コマンドの実行前から存在するメソッドは削除されません。
- マッピングルールは、OAS からの各操作に対して作成されます。
OpenAPI 定義リソースは、以下のチャンネルのいずれかで提供することができます。
- 利用可能なパスの ファイル名
- URL フォーマット (toolbox は所定のアドレスからダウンロードを試みます)
- stdin 標準入力ストリームから読み込む
1.4. OpenAPI Specification の使用
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
1.4.1. ファイル名のパスからの OpenAPI 定義の検出
使用できるフォーマットは json と yaml です。フォーマットは、ファイル名の拡張子から自動的に検出されます。
$ 3scale import openapi -d <destination> /path/to/your/spec/file.[json|yaml|yml]
1.4.2. URL からの OpenAPI 定義の検出
使用できるフォーマットは json
と yaml
です。フォーマットは、URL のパスの拡張子から自動的に検出されます。
$ 3scale import openapi -d <destination> http[s]://domain/resource/path.[json|yaml|yml]
1.4.3. stdin からの OpenAPI 定義の検出
OpenAPI リソースのコマンドラインパラメーターは -
です。
使用できるフォーマットは json
と yaml
です。形式はパーサーにより内部的に自動検出されます。
$ tool_to_read_openapi_from_source | 3scale import openapi -d <destination> -