Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

Webブラウザからも可能! REST APIでOracle Database Cloud上のデータにアクセスする

Oracle Database Cloudでいってみよう! ~ モダンな企業向けクラウドアプリを一番かんたん・安全につくる方法 【第4回】

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/02/03 14:00

目次

テーブルの全レコードを取得するAPIを作成する

まず、REST APIの新しいモジュールを作成します。前述のサンプルモジュールに含まれる機能ではありますが、empテーブルの社員情報を操作するAPIを作成してきます。

REST API管理のホームページで[Create]ボタンをクリックします。

REST API管理のホームページで[Create]ボタンをクリック
REST API管理のホームページで[Create]ボタンをクリック

モジュール作成のフォームに遷移します。本来モジュールに含まれる設定は「RESTful Service Module」セクションにあるパラメーターのみですが、このフォームではその配下のURIテンプレートとハンドラーを同時に1つ作成できるようになっています。ただし、ここではコンポーネントごとに順を追って設定を行うため、「RESTful Service Module」セクションのみ設定します。

モジュール作成のフォーム
モジュール作成のフォーム
Name
このモジュールの名前です。ここでは「社員」とします。
URI Prefix
このモジュール配下のURIテンプレートに共通する接頭辞(Prefix)です。ここでは設定しません。
Origins Allowed
いわゆるCORS(Cross Origin Resource Sharing)設定です。このモジュールのAPIへのアクセスを許可するドメインを指定します。ここではどのドメインからでもアクセスを許可するため「*」とします。
Required Privilege
このモジュールのAPIへのアクセスを許可する権限です。ここではデフォルトの「Assign Privilege」のままとし、このモジュールのAPIアクセスには認証を不要とします。

上記のとおり設定したら[Create Module]ボタンをクリックします。これでモジュールが作成されました[2]

[2]: 筆者の環境では、なぜか「Origin Allowed」が一度では保存されませんでした。モジュールが作成された後に「Origin Allowed」項目を確認し、もし設定が入っていなければ再度「*」を入力して、[Apply Change]ボタンで保存してください。

続けて、このモジュール配下にURIテンプレートを作成していきます。

まず全社員リストを取得するためのURIテンプレートを作成してみましょう。画面左の「+ Create Template」をクリックします。

全社員リストを取得するためのURIテンプレートを作成開始
全社員リストを取得するためのURIテンプレートを作成開始

全社員を取得するAPIには、「http[s]://[あなたのドメイン]/apex/employee/list」というURLをアクセスさせることを想定し、URI Templateは「employee/list」とします。他のパラメーターはひとまずデフォルト値のまま[Create]ボタンをクリックします。

全社員を取得するAPIの設定
全社員を取得するAPIの設定

次に、このAPIコールで実行されるクエリー(Query)を設定するためのハンドラーを作成します。画面左の「+ Create Handler」をクリックします。

APIコールで実行されるクエリー(Query)を設定するためのハンドラーを作成
APIコールで実行されるクエリー(Query)を設定するためのハンドラーを作成

ハンドラーで特に重要なのはMethodとSourceです。

ハンドラーの設定
ハンドラーの設定
Method
このハンドラーに対応するHTTPメソッドを指定します。REST APIの慣習としてデータを取得するAPIの場合はGETメソッドが用いられますので、今回もそれに習って「GET」とします。
Source Type
実行するアクションを指定します。今回はSQL文で複数レコードを取得するため「Query」とします。
Format
レスポンスのフォーマットを指定します。ここでは「JSON」とします。
Required Secure Access
HTTPSによるアクセスを強制するかどうかを指定します。ここでは「Yes」とします。
Pagenation Size
1回のAPIコールで取得できるレコード数を指定します。この値を設定した場合、超加したレコードについては、レスポンスに含まれる「next」属性で指定されているURLにアクセスすることで、再帰的に取得することができます。ここではデフォルトのまま未設定とします。
Source
実行するSQL文を指定します。ここではempテーブルの全レコードを取得するため、次のSQL文を設定します[3]
select * from emp

[3]: 末尾にセミコロンを入れるとAPIコール時にエラーとなるので注意してください。

全社員情報を取得するためのAPI設定が完了しました。画面下の方に[Test]ボタンが用意されています。このボタンをクリックすると、このAPIにブラウザでアクセスして結果を確認することができます。

作成したAPIにブラウザでアクセスして結果を確認
作成したAPIにブラウザでアクセスして結果を確認

設定が正しく行われていれば、結果が次のようにJSONフォーマットで表示されます。

正しく設定されていればJSONフォーマットで結果を表示
正しく設定されていればJSONフォーマットで結果を表示

なお、ここでは単純に全件取得のクエリーを設定しましたが、SQL文によって、検索結果はいかようにもカスタマイズできます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 中嶋 一樹(ナカジマ カズキ)

    日本オラクルのエバンジェリスト。Cloud Platformに関するエンジニアリングと啓蒙活動を担当。クラウドのビルディングブロックを使ったモダンなアプリケーションの開発、エコシステムの構築をライフワークにしている。公私ともに何かを開発していることが多い。

バックナンバー

連載:Oracle Database Cloudでいってみよう! ~ モダンな企業向けクラウドアプリを一番かんたん・安全につくる方法
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5