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

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)