はじめに
この記事で書いてること
- LiveLabs:ORDS: Build Powerful, Secure RESTful ORDS APIs for your Oracle Autonomous Databaseの実施メモ
- 主にORDS/AutoREST機能を用いて、Oracle DatabaseにあるデータにRESTで簡単にアクセスするための概要
ORDSとは
- ORDS(Oracle REST Data Services)は、Oracle Databaseのデータや機能をREST APIとして簡単に公開できるサービス
- SQLやPL/SQLをそのままAPI化できるため、フロントエンドや外部システムから安全にデータを呼び出せる
- APEXとの連携により、認証・セキュリティ機能も標準で利用可能
- Webアプリやモバイルアプリ開発で、データベースと直結した効率的なAPI基盤を構築できるのが大きな魅力
AutoRESTとは
- Oracle Autonomous Database(ADB)のAutoRESTは、データベース内のテーブルやビューを簡単にREST API化できる機能
- 主に以下の特長がある
- ノーコードで簡単:特別なプログラムやコードを書かず、GUIで操作するだけでAPIを作れる
- 迅速な開発:REST APIを使ったアプリケーション開発がスピードアップする
- セキュリティ強化:Oracle Cloudが標準で提供するセキュリティ機能を利用できる
LiveLabsでやってることの概要
- AutoRESTでテーブルをAPIで公開するステップ(前編:この記事)
- ビジネスロジックをAPIで公開するステップ(後編:今後共有予定の記事)
後編作成・公開しました。
実施メモ(前編):AutoRESTでテーブルをAPIで公開するステップ
前提
- ADB環境がセットアップされている
- Publicからのアクセスが可能
- Database Actionsにアクセスできる
- curlコマンドを実行できる環境がある
準備
Tableの作成&データロード
- CSVデータをダウンロード
- Database Actionsを用いて、ダウンロードしたCSVファイルをもとにテーブル作成&データロード
SQL Developer Webを起動
リフレッシュ後、CSV_DATAをオープン
AutoRESTの有効化
(補足)実際にはこのコードが実行される
BEGIN
ORDS.ENABLE_OBJECT(
P_ENABLED => TRUE,
P_SCHEMA => 'ADMIN',
P_OBJECT => 'CSV_DATA',
P_OBJECT_TYPE => 'TABLE',
P_OBJECT_ALIAS => 'csv_data',
P_AUTO_REST_AUTH => FALSE
);
COMMIT;
END;
URL部分をコピーの上、REST/APIでアクセス
例:PostmanでURLを実行したときのイメージ
BATCH LOAD
BATCH LOADを選択のうえ、Copy to Clipboardをクリック
以下のcurlコマンドがコピーされるので、エディターに貼付けする
curl --location --request POST \
--header "Content-Type: <CONTENT_TYPE>" \
--data-binary @<FILE_NAME> \
'https://sya6vphk3pzlkhq-dw4ai.adb.ap-tokyo-1.oraclecloudapps.com/ords/admin/csv_data/batchload'
以下のcurlコマンドを用いたファイルをダウンロード
curl -o 2M.csv https://c4u04.objectstorage.us-ashburn-1.oci.customer-oci.com/p/EcTjWk2IuZPZeNnD_fYMcgUhdNDIDA6rt9gaFj_WZMiL7VvxPBNMY60837hu5hga/n/c4u04/b/livelabsfiles/o/developer-library/2M.csv
ダウンロードしたファイルを用いたBATCH LOADをするようにコマンドを編集
※ 以下コマンドの"--user "admin:Welcome12345#"は、実際のユーザ/パスワードに変更する
curl --location --request POST \
--write-out '%{time_total}' \
--header "Content-Type:text/csv" \
--data-binary @2M.csv \
--user "admin:Welcome12345#" \
'https://sya6vphk3pzlkhq-dw4ai.adb.ap-tokyo-1.oraclecloudapps.com/ords/admin/csv_data/batchload'
コマンドが成功したことを確認
#INFO Number of rows processed: 2,097,148
#INFO Number of rows in error: 0
#INFO Last row processed in final committed batch: 2,097,148
SUCCESS: Processed without errors