2023年5月10日水曜日

APEX 23.1のOpenAPIファイルを使ったREST Data Sourceの作成について

 Oracle APEX 23.1ではOpenAPI仕様のREST APIの定義を読み込んで、RESTデータ・ソースを作成できるようになりました。

Oracle APEXに付属しているoracle.example.hrのモジュールを使って、OpenAPI定義を使ったRESTデータ・ソースを作ってみます。2箇所ほど不具合があり、その対策を説明しています。

最初にモジュールoracle.example.hrのOpenAPI定義を確認します。

モジュール定義完全なURLは、RESTデータ・ソースの作成時にURLエンドポイントとして与える値です。現行のapex.oracle.comではモジュール名oracle.example.hrがURLに含まれています。不具合なので、URLエンドポイントとして入力する際にはモジュール名の部分を削除します

Swaggerドキュメントの作成をクリックします。SwaggerはOpenAPIの以前の呼称です。


ボタンをクリックするとJSONドキュメントが生成されます。APEX 23.1からはSwagger Editorが開きます。JSONドキュメントにアクセスするURLが表示されているので、それをコピーしておきます。

このURLをRESTデータ・ソースを作成する際に、OpenAPI URLとして指定します。


RESTデータ・ソースの作成に必要な情報が揃いました。

共有コンポーネントRESTデータ・ソースを開き、作成を実行します。


RESTデータ・ソースの作成として最初からを選択します。

へ進みます。


RESTデータ・ソース・タイプとして簡易HTTPを選択します。名前は任意ですが、oracle.example.hrとしました。

URLエンドポイントとして、RESTfulサービスのモジュール定義にあった完全なURL修正したもの)を指定します。また、OpenAPI URLにはSwagger EditorからコピーしたURLを指定します。

へ進みます。


リモート・サーバーの確認画面が開きます。

リモート・サーバー新規作成される場合、サービスURLパスが"/"で始まっていることがあります。RESTデータ・ソースが正しく作成されないため、サービスURLパスの先頭に"/"がある場合は、それを削除します

へ進みます。


ページ区切りタイプは変更せず、ページ区切りなしとします。今回はORDSのRESTサービスであるため、実際にはページ区切りが実装されています。この設定はRESTデータ・ソースを作成した後に変更できます。

へ進みます。


今回使用するRESTサービスは保護されていないので、認証が必要ですオフにします。

検出をクリックします。


データ・プロファイルはOpenAPIの定義から生成されます。


詳細操作にRESTデータ・ソースに実装されているエンドポイントURLの一覧が表示されます。

以上を確認し、RESTデータ・ソースの作成を実行します。


RESTデータ・ソースoracle.example.hrが作成されます。

作成されたRESTデータ・ソースを開いて、設定内容を確認します。

RESTデータ・ソースURLパス接頭辞が"/"で始まっていないこと、および、操作URLパターンがプロトコル(https://)で始まっていないことを確認します。


OpenAPI仕様の定義を読み込んで、RESTデータ・ソースを作成する手順の紹介は以上です。

Oracle APEXのアプリケーション作成の参考になれば幸いです。