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が返ってきます。





コメント
コメントを投稿