SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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

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

テーブルの全レコードを取得する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文によって、検索結果はいかようにもカスタマイズできます。

次のページ
動的なパラメーターを含むAPIを作成する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Oracle Database Cloudでいってみよう! ~ モダンな企業向けクラウドアプリを一番かんたん・安全につくる方法連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9231 2016/02/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング