レコードを挿入するAPIを作成する
それでは最後に、レコードを挿入するAPIを作成します。先ほど作成した社員モジュールの中に新しいURIテンプレートを作成するため、「Create Template」をクリックします。
今回のAPIには、「http[s]://[あなたのドメイン]/apex/employee」というURLでアクセスすることを想定し、「URI Template」に「employee」を指定して「Create]ボタンをクリックします。
URIテンプレートが作成されたら、ハンドラーを作成するために「Create Handler」をクリックします。
そして、やはり次のようにして、ハンドラーの詳細を設定します。
- Method
- 今回はレコードを作成するAPIなので「POST」とします。
- Source Type
- PL/SQLを指定します。
- Source
- 社員レコードを挿入するPL/SQL文を下記の通り設定します。
begin insert into em (ENAME) values (:ENAME); end;
「:ENAME」はバインド変数で、POSTリクエストのBodyにセットされたJSONフォーマットのデータがここにセットされます。
上記のとおりに設定したら、[Create]ボタンをクリックしてハンドラーを作成します。
これでレコードを挿入するAPIが完成しました。ただし、このAPIをテストをするにはPOSTリクエストを生成する必要があるので、少しセットアップが必要です。筆者はChromeブラウザの「Advanced REST Client」というアドオンを使ってPOSTリクエストをテストしています。
Advanced REST Clientで今回のAPIにアクセスするには、次図のようにパラメーターをセットし、[Send]ボタンをクリックするだけです。
HTTPメソッドとしてPOST、BodyにJSONフォーマットで「{"ENAME":"KAZUKI"}」と送信するデータを入力しています。また、コンテンツタイプとして「application/json」を指定しています。
このリクエストがステータスコード200で返ってくれば成功です。データベースにレコードが挿入されているかどうか確認してみてください。
まとめ
今回はクラウドサービスにおけるAPIの標準形ともいえるREST APIで、Oracle Database Cloudにアクセスする方法を紹介しました。REST APIはサービス間連携で必要となるだけでなく、モバイルアプリケーションやHTML5アプリケーションを提供する際には必須の機能です。
従来RDBMSではODBCやJDBCといった接続方法が主流でしたが、Oracle Database Cloudではクラウドでのユースケースで必要とされるREST APIで直接データベースにアクセスできるようになっています。この機能を活用することで、よりシンプルなアーキテクチャーでモバイルやHTML5、複数のサービスを組み合わせたエコシステムといった新しい利用シーンに対応できるでしょう。