REST APIs for Oracle Database, ORDS 19.2でアップデート (2019/08/05)
REST APIs for Oracle Database, ORDS 19.2でアップデート (2019/08/05)
https://www.thatjeffsmith.com/archive/2019/08/rest-apis-for-oracle-database-updated-with-ords-19-2/
Oracle REST Data Services(ORDS)バージョン19.1では、Oracle Database用の管理APIを導入しましたが、それについてはこちらで紹介しました。
先週リリースされたORDS 19.2では、いくつかのアップデートとおもちゃが用意されているので、ぜひ利用してみてください。
DB APIエンドポイントの完全なリストとswaggerドキュメントはこちらでご覧いただけます。
また、公式のDatabase Docsページにアクセスすると、REST APIへのリンクがありますので、そちらもご覧ください。
これらのAPIは、19cだけでなく、11gR2およびサポートされている12、18、19の各バージョンで利用でき、サポートされています。
では、何が新しくなったのでしょうか?
注目すべき大きな点は2つあります。
- Data Pumpサポートの改善
- データベース作成アシスタント(DBCA)
Data Pumpについては、Data Pumpのジョブを定義するための設定がより柔軟になり、EXPORTとIMPORTもサポートされています。
EXPORTをしてみましょう。そのあとIMPORTのデモをします。
2つのテーブルをエクスポートしてみましょう。
POST http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/export
そして、これが私のPOSTリクエストボディです。
{ "datapump_dir": "DATA_PUMP_DIR", "filter": "EMPLOYEES_COPY, HOCKEY_NO_PARTS", "job_mode": "TABLE", "threads": 2 }
私がリクエストすると、ORDSはこのようなレスポンスを返してきます。
{ "job_name": "DATAPUMP_REST_EXPORT_20190805105213", "owner_name": "HR", "operation": "EXPORT", "job_mode": "TABLE", "state": "EXECUTING", "degree": 2, "attached_sessions": 0, "datapump_sessions": 2, "job_state": "EXECUTING", "links": [ { "rel": "collection", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/" }, { "rel": "describedby", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/metadata-catalog/" }, { "rel": "related", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/HR,DATAPUMP_REST_EXPORT_20190805105213/EXPDAT-2019-08-05-10_52_13.LOG" }, { "rel": "self", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/HR,DATAPUMP_REST_EXPORT_20190805105213/" } ] }
そこには、仕事のためのLOGを取得するためのリンクがあり、私はそれに従って何が起こったかを見ています。
2つのテーブルがエクスポートされました。
さようなら、甘い、甘いデータ。
さあ、復活させましょう。
インポートの様子
POST http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/import
そして、非常にシンプルなPOSTリクエストボディです。
{ "datapump_dir": "DATA_PUMP_DIR", "job_mode":"FULL", "file_name":"EXPDAT%U-10_52_17.DMP" }
前回のジョブから2つのDMPファイルがあるので、%Uを使ってIMPORTジョブ用に両方のファイルを取得しなければなりません。
そして、私たちの反応は...
{ "job_name": "DATAPUMP_REST_IMPORT_20190805120954", "owner_name": "HR", "operation": "IMPORT", "job_mode": "FULL", "state": "EXECUTING", "degree": 1, "attached_sessions": 0, "datapump_sessions": 2, "job_state": "EXECUTING", "links": [ { "rel": "collection", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/" }, { "rel": "describedby", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/metadata-catalog/" }, { "rel": "related", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/HR,DATAPUMP_REST_IMPORT_20190805120954/EXPDAT-2019-08-05-10_52_13.LOG" }, { "rel": "related", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/HR,DATAPUMP_REST_IMPORT_20190805120954/IMPDAT-2019-08-05-12_09_54.LOG" }, { "rel": "self", "href": "http://localhost:8080/ords/hr/_/db-api/19.2.0/database/datapump/jobs/HR,DATAPUMP_REST_IMPORT_20190805120954/" } ] }
そして、そのログを引き上げると...。
データが戻ってきたよ。
念のため、もう一度データを照会してみましょう...。
生きています!
現在、使用できるAPIには2つのバージョンがあります。
/19.1.0/
/19.2.0/
19.1.0/.../importにPOSTしようとすると、19.2の新機能であるため、404が返ってきます。
コメント
コメントを投稿