このチュートリアルでは、Oracle Enterprise Pack for EclipseとOracle Mobile Application Frameworkを使用して、RESTサービスをデータ・ソースとして使用するアプリケーションを構築してデプロイします。Oracle Enterprise Pack for Eclipseには、アプリケーションの構築前にサービスを調査してテストするためのRESTサービス・エディタが含まれています。任意のアクセス可能なRESTサービスを使用できますが、このチュートリアルでは、RESTサービスを模倣して、ローカルのJavaアプリケーションとして実行されるJavaクラスを提供します。

ここでは、RESTサービスの調査方法や、MAFアプリケーションからサービスへのデータ・アクセス方法を提供するデータ・コントロールの作成方法を確認します。

要件:

Oracle Enterprise for Eclipseバージョン12.1.3.5以降。Oracle Enterprise Pack for EclipseはOTNのOracle Enterprise Pack for Eclipseページからダウンロードできます。

ここから、モックのRESTサービスをダウンロードします。チュートリアルの最初の項で、このサービスをOracle Enterprise Pack for Eclipseをインポートします。

パート1:REST JSONサービス用のAPIの作成

Oracle Enterprise Pack for Eclipseで作業する場合、アプリケーションをともに構成する複数のプロジェクトで作業を整理します。Oracle Developer Cloud Serviceの統合のために、最初にアプリケーションを開発し、そのアプリケーションをOracle Developer Cloud ServiceのGitリポジトリにプッシュします。

この最初の項では、RESTサービスをOracle Enterprise Pack for Eclipseにインポートします。

ステップ1:スタータ・アプリケーションのインポート
  1. Eclipse and OEPE」を開きます。ヒント:Oracle Enterprise Pack for Eclipseのインストール先に移動してeclipse.exeをダブルクリックします。任意のワークスペースを選択して、「Workbench」を開きます。

  2. Javaアプリケーションを開発し、Oracle Developer Cloud Serviceを使用するため、Java EEパースペクティブを使用することにします。メニューから、「Window」→「Open Perspective」を選択し、「Java EE」をクリックします。

    アプリケーション・ナビゲータ
  3. Eclipseメニューから、「File」→「Import」を選択します。

    アプリケーション・ナビゲータ
  4. Importダイアログで「General」→「Existing Projects into Workspace」を選択し、「Next」をクリックします。

    New Gallery
  5. Select archive file」をクリックし、Browseボタンを使用して、ダウンロードしたzipファイル(MockHRRestServer.zip)を選択します。「Finish」をクリックして、プロジェクトをインポートします。まだスタータ・アプリケーションをダウンロードしていない場合は、この項の最初に戻ってダウンロード・リンクをご利用ください。

    Create Mobile Appのステップ1
  6. Project Explorerで、「MockHRRestServer」プロジェクトを展開し、プロジェクト内のアーチファクトを表示します。

    Create Mobile Appのステップ2

    モック・サーバーがOracle Enterprise Pack for Eclipseに含まれています。このサーバーをアプリケーションとして実行できます。

  7. まだ展開していない場合は、「MockHRRestServer」→「src」→「server」を展開します。

    Create Mobile Appのステップ2
  8. Server.java」を右クリックし、「Run As」→「Java Application」を選択します。

    Create Mobile Appのステップ2
  9. コンソール・ウィンドウで、アプリケーションからポート番号の入力を求められます(デフォルト:4545)。

    Create Mobile Appのステップ2
  10. [Enter]キーを押してデフォルト値を適用し、サーバーを起動します。

    Create Mobile Appのステップ2
  11. スタータ・アプリケーションをOracle Enterprise Pack for Eclipseにインポートしたので、次にOracle Developer Cloud Serviceへのコネクションを作成し、このプロジェクトをクラウドにプッシュします。

ステップ2:RESTサービスのテスト

RESTサービス・エディタは、RESTサービスを利用するための反復的なプロセスを提供します。このエディタでは、既存のRESTサービスを探すことができます。また、エディタから直接サービスのテストや確認を行うこともできます。

このチュートリアルで使用するサービスには、次の5つのメイン・サービスがあります。

  1. RESTサービスがローカルで実行中であることを確認するために、任意のブラウザを開きlocalhost:4545/departmentsと入力して[Enter]キーを押します。

    Create Mobile Appのステップ2
  2. getDepartmentByIdサービスが動作していることを確認するために、URLに/20を追加して[Enter]キーを押します。

    Create Mobile Appのステップ2

    RESTサービスをテストする前に、MAFアプリケーションを作成する必要があります。

  3. Project Explorerで、右クリックして「New」→「MAF Application」を選択します。

    Create Mobile Appのステップ2
  4. MAF Applicationダイアログで、Application display nameHRに設定し、「Next」をクリックします。

    Create Mobile Appのステップ2
  5. 表示されるプロジェクト名をそのままにして、「Next」をクリックします。

    Create Mobile Appのステップ2
  6. Add」をクリックして、デプロイメント用のMobile SDKを定義します。

    Create Mobile Appのステップ2
  7. Select Platformダイアログで、「Manage your SDKs...」をクリックします。

    Create Mobile Appのステップ2
  8. Add」をクリックして、Mobile SDKを定義します。

    Create Mobile Appのステップ2
  9. 参照ボタンを使用してSDKのパスを選択し、「OK」をクリックします。

    Create Mobile Appのステップ2
  10. OK」をクリックして、変更を許可します。

    Create Mobile Appのステップ2
  11. Yes」をクリックして、Oracle Enterprise Pack for Eclipseによるプロジェクトの再構築を許可します。

    Create Mobile Appのステップ2
  12. このSDKのまま「OK」をクリックして、「Finish」をクリックします。

    Create Mobile Appのステップ2
  13. このアプリケーション・タイプはOracle Mobile Application Framework(Oracle MAF)パースペクティブに関連付けられるという通知が表示されます。「Yes」をクリックして、このパースペクティブを変更します。

    Create Mobile Appのステップ2

    これで、RESTサービス・ディスクリプションの作成に進むことができます。

  14. HRView」を右クリックし、「New」→「REST Service Description」を選択します。

    Create Mobile Appのステップ2
  15. HRServiceという名前を付け、「Finish」をクリックします。

    Create Mobile Appのステップ2

    RESTサービス・ディスクリプションが作成され、エディタが開きます。

    Create Mobile Appのステップ2
  16. REST Clientエディタで、DepartmentsサービスをRESTクライアントのアドレスとしてテストした際のURLhttp://localhost:4545/departments)を入力します。

    Create Mobile Appのステップ2
  17. Methodが「GET」に設定されていることを確認して、「Send Response」アイコンをクリックします。

    Create Mobile Appのステップ2

    このエディタがレスポンスを受信すると、Statusがリクエストの結果に変更されます。ここでは200 - OKと表示されます。これは、リクエストが正常に実行されたことを意味します。

    Create Mobile Appのステップ2
  18. Raw Content」タブをクリックして、データを生の形式で表示します。

    Create Mobile Appのステップ2
  19. Word Wrap」アイコンをクリックして、データを表示ペイン内で折り返して表示します。

    Create Mobile Appのステップ2
  20. Rendered Content」タブをクリックして、データをオブジェクトにレンダリングして表示します。

    Create Mobile Appのステップ2
  21. プラス記号をクリックしてオブジェクト・ノードを展開し、レンダリングされたデータを表示します。

    Create Mobile Appのステップ2

    REST JSONサービスにアクセスできることをテストしたので、次のステップではAPIを作成して詳しく見ていきます。

ステップ3:RESTサービスによる取得用REST APIの作成

この項では、テストしたREST JSONサービスを使用してREST APIを作成します。作成したRESTクライアントからAPIを作成することも、先にAPIを作成してからRESTクライアントを使用してテストすることもできます。

この最初の項では、先ほどテストしたRESTクライアントからAPIを作成します。

  1. REST Clientタブで、「Import REST Client」アイコンをクリックします。

    Create Mobile Appのステップ2
  2. Import REST Client Informationダイアログで、RequestData Typeが選択されていることを確認し、「Next」をクリックします。

    Create Mobile Appのステップ2
  3. Import Requestで、Root Pathから/departmentsを削除し、Request NamegetDepartmentListに設定します。サービスをテストした際に確認したとおり、このサービスは部門のリストを返します。そのため、この名前をgetDepartmentListと設定します。「Finish」をクリックします。

    Create Mobile Appのステップ2

    APIを作成したので、その定義について詳しく見てみましょう。

  4. 各タブをクリックすると、Outputタブ以外はすべて空になっています。

    Create Mobile Appのステップ2

    OutputタブのRepresentationの名前はDepartmeents1となっています。これは、レスポンス内にあった、生成されたJSONペイロードのデフォルト名です。

  5. Data Types」タブをクリックします。

    Create Mobile Appのステップ2

    このサービスをサポートする2つのLocal Data Types(Departments、Departments1)が定義されています。

  6. Departments」をクリックします。Departmentオブジェクトの定義が表示されます。

    Create Mobile Appのステップ2
  7. この名前をDepartmentに変更します。

    Create Mobile Appのステップ2
  8. Departments1」をクリックします。Departmentsのコレクションの定義が表示されます。

    Create Mobile Appのステップ2
  9. この名前をDepartmentListに変更します。

    Create Mobile Appのステップ2

    REST APIを作成したので、次にこの定義をRESTクライアントにコピーしてテストできます。

  10. Copy to REST Client」アイコンをクリックします。

    Create Mobile Appのステップ2
  11. REST Clientタブで、「Send Request」をクリックし、Responseパネルで結果を確認します。

    Create Mobile Appのステップ2

    これまでのステップで、部門のリストを返すREST APIを作成しました。この後のステップでは、部門IDに基づいて1つの部門を返す別のREST APIを作成します。

  12. 作業内容を保存します。

  13. REST Clientタブで、このRESTサービスのAddress/{id}を追加します。

    Create Mobile Appのステップ2
  14. Send Request」をクリックします。

    Create Mobile Appのステップ2
  15. URL内に引数があるため、その引数の値の入力を求められます。20と入力して「OK」をクリックします。

    Create Mobile Appのステップ2
  16. Rendered Content」タブをクリックすると、Department 20を表す行のみが返されます。

    Create Mobile Appのステップ2
  17. 作業内容を保存します。

    RESTクライアントが動作することを確認したので、次にこのRESTクライアントをREST APIとしてインポートできます。

  18. Import REST Client Information」アイコンをクリックします。

    Create Mobile Appのステップ2
  19. RequestData Typeが選択されていることを確認し、「Next」をクリックします。

    Create Mobile Appのステップ2
  20. Request NamegetDepartmentByIdと入力して、「Finish」をクリックします。

    Create Mobile Appのステップ2
  21. 作業内容を保存します。

  22. Output」タブをクリックすると、Representationタイプの出力されたDepartmentがあります。

    Create Mobile Appのステップ2
  23. 先ほどと同じように、「Copy to REST Client」アイコンをクリックします。

    Create Mobile Appのステップ2
  24. Send Request」アイコンをクリックして、部門のidとして30と入力します。

    Create Mobile Appのステップ2

    Create Mobile Appのステップ2
  25. まだ開いていない場合は、「Rendered Content」タブをクリックして、レスポンスに部門30のJSONペイロード・オブジェクトのみが含まれていることを確認します。

    Create Mobile Appのステップ2

    この項では、REST ClientエディタでテストしたREST JSONサービスによってREST APIを作成しました。これまで、2つのサービスのREST APIを作成しました。1つ目のサービスはDepartmentsのコレクションを返し、2つ目のサービスは指定した引数に基づいて特定の1つのDepartmentを返します。

ステップ4:RESTサービスによる更新用REST APIの作成

これまでの項では、REST JSONサービスから’読取り用’のAPIを作成する方法を確認しました。この項では、作成API、更新API、削除APIを含む他のAPIを作成してテストします。

これまで、REST Clientエディタを使用してRESTサービスを探してテストし、そのサービスをAPIとしてインポートすることでAPIを作成しました。次のAPIでは、APIを直接作成してテストします。

  1. REST API」タブをクリックします。

  2. ここでは更新APIを作成するため、まずは{id}パス変数のパス・セグメント内にリクエストを作成します。{id}パス・セグメント内の「Requests」をクリックします。

    Create Mobile Appのステップ2
  3. Requests」を右クリックして「New」→「Request」を選択するか、Outlineヘッダーのプラス記号をクリックして、リクエストを追加します。

    Create Mobile Appのステップ2
  4. 更新サービスなので、MethodPUTに設定し、NameupdateDepartmentByIdと入力します。

    Create Mobile Appのステップ2
  5. リクエストとともにコンテンツを送信するため、コンテンツ・ヘッダーを追加する必要があります。「HTTP Header」タブをクリックし、「create」アイコンをクリックします。

    Create Mobile Appのステップ2
  6. Add Headerダイアログで、NameContent-Typeと入力し、Valueapplication/jsonと入力します。「OK」をクリックして、ヘッダーを作成します。

    Create Mobile Appのステップ2
  7. 更新サービスを作成するため、サービスへ入力内容を送信する必要もあります。「Input」タブをクリックします。

    Create Mobile Appのステップ2
  8. Typeを「Representation」に設定します。

    Create Mobile Appのステップ2
  9. Add」アイコンをクリックして、Data Typeで「Department」を選択します。

    Create Mobile Appのステップ2
    Create Mobile Appのステップ2

    OutputのDepartmentのタイプもRepresentationにします。

  10. Output」タブをクリックし、Typeを「Representation」に設定します。

    Create Mobile Appのステップ2
  11. Add」アイコンをクリックします。Data Typeを「Department」に設定して、「OK」をクリックします。

    Create Mobile Appのステップ2

    これで、REST JSONサービスの更新APIの作成は完了です。この後のステップでは、このAPIをテストします。

  12. 先ほどと同じように、「Copy to REST Client」アイコンをクリックします。

    Create Mobile Appのステップ2

    この更新サービスにはDepartmentオブジェクトが必要です。ここでは、Request DetailsのInputにDepartmentを追加します。このオブジェクトを、最後に送信したリクエストのResponseからコピーして、新しいリクエストのInputに貼り付けます。

  13. Responseパネルで「Raw Content」をクリックします。

    Create Mobile Appのステップ2
  14. テキスト全体を選択して、クリップボードにコピーします。ヒント:Windowsでは[Ctrl+C]キー、Macでは[Command+C]キーを使用します。

    Create Mobile Appのステップ2
  15. Request Detailsパネルで「Input」タブをクリックし、Typeを「Body」に設定します。

    Create Mobile Appのステップ2
  16. Raw ContentからコピーしたテキストInputのBodyに貼り付け、「Word Wrap」アイコンをクリックします。

    Create Mobile Appのステップ2
  17. InputのBodyテキストボックス内をクリックし、departmentNameの値を任意の文字列に変更します。

    Create Mobile Appのステップ2
  18. Send Request」をクリックして、更新サービスを呼び出します。

    Create Mobile Appのステップ2
  19. レスポンスからコピーしたDepartmentのidを入力します。この例では30です。「OK」をクリックします。

    Create Mobile Appのステップ2
  20. レスポンスのStatusがOKとなり、Raw Contentに新しいdepartmentNameが表示されます。

    Create Mobile Appのステップ2
  21. 更新APIを作成したので、次に、この基本手順を繰り返して削除APIを作成します。

  22. REST Client」タブに戻ります。

    Create Mobile Appのステップ2
  23. Methodを「GET」に設定し、Addressにhttp://localhost:4545/departments/{id}と入力して、「Send Request」をクリックします。これは単に1つの部門を取得してサービスが動作していることを確認するための操作です。

    Create Mobile Appのステップ2
  24. idに260と入力して「OK」をクリックします。

    Create Mobile Appのステップ2
  25. Rendered Content」タブをクリックすると、1つの部門(260)が返されます。

    Create Mobile Appのステップ2

    RESTサービスのDeleteでは、メソッドをDELETEに設定し、パス・セグメントにそのIDのパス変数を含める必要があります。

  26. Methodを「DELETE」に設定します。Addressに{id}パス・セグメントが含まれているため、「Send Request」をクリックします。

    Create Mobile Appのステップ2
  27. idに260と入力して「OK」をクリックします。

    Create Mobile Appのステップ2
  28. Responseを見ると、Statusが200 - OKとなり、departmentIdが0に設定されています。

    Create Mobile Appのステップ2
  29. この部門が本当に削除されていることを確認するために、Methodを「GET」に設定して「Send Request」をクリックします。先ほどと同じように、id260と入力して「OK」をクリックします。

    Create Mobile Appのステップ2
  30. Statusが204 - No Contentとなります。これで、Department 260が正常に削除されたことが証明されました。

    Create Mobile Appのステップ2
  31. 再度MethodをDELETEに戻し、「Import」アイコンをクリックしてAPIを作成します。

    Create Mobile Appのステップ2
  32. Import REST Client Informationダイアログで、「Next」をクリックします。

    Create Mobile Appのステップ2
  33. Request NameにremoveDepartmentByIdと入力して、「Finish」をクリックします。

    Create Mobile Appのステップ2
  34. Rest APIタブで、departments/{id}パス・セグメントにこのメソッドが追加されています。

    Create Mobile Appのステップ2
  35. 作業内容を保存します。

    この後のステップでは、作成メソッドをテストしてインポートします。作成メソッドでは、部門オブジェクトをリクエストとともに送信する必要があります。更新メソッドと同じように、Raw Contentからペイロードをコピーし、値の一部を変更して、それを新しいDepartmentとして使用します。

  36. Rest Clientタブに戻って、GETメソッドを実行し、idを20に設定して部門20を取得します。

    Create Mobile Appのステップ2
  37. Raw Content」タブをクリックします。

    Create Mobile Appのステップ2
  38. このメソッドを「POST」に設定し、Addressにhttp://localhost:4545/departmentsと入力します。作成メソッドでは、引数のIDは必要ありません。

    Create Mobile Appのステップ2
  39. Request Detailsで「Input」タブをクリックし、Typeを「Body」に設定します。

    Create Mobile Appのステップ2
  40. Raw Contentタブからコンテンツをコピーして、Bodyテキストボックスに貼り付けます。

    Create Mobile Appのステップ2
  41. Bodyテキストボックスで、コンテンツから"departmentId":20,を削除します。この作成メソッドでは、ペイロードの一部にdepartmentIdは必要ありません(指定することもできません)。

    Create Mobile Appのステップ2

    コンテンツは次のようになります。

    Create Mobile Appのステップ2
  42. departmentNameを任意の新しい部門名に変更します。

    Create Mobile Appのステップ2

    リクエストを送信する前に、リクエストにヘッダーを追加する必要があります。

  43. Request Detailsで「Headers」タブをクリックします。

    Create Mobile Appのステップ2
  44. Add」アイコンをクリックして、ヘッダーをリクエストに追加します。

    Create Mobile Appのステップ2
  45. ヘッダーのNameを「Content-Type」に設定し、Valueapplication/jsonと入力します。ヒント:[Control+Space]キーを使用し、下矢印を入力して、値を補完できます。

    Create Mobile Appのステップ2

    Create Mobile Appのステップ2
  46. 2つ目のヘッダーを追加します。Nameを「Accept」に設定し、Valueapplication/jsonと入力します。

    Create Mobile Appのステップ2
  47. Send Request」をクリックして、作成したRESTサービスをテストします。

    Create Mobile Appのステップ2
  48. Responseパネルに、Status 200 - OKというメッセージが表示されます。また、Raw Contentに、生成されたIDを持つ新しい部門レコードが表示されます。

    Create Mobile Appのステップ2

    リクエストの定義とテストが完了したので、次にこのリクエストをAPIとしてインポートします。

  49. Import」アイコンをクリックし、Importダイアログでデフォルト値のまま「Next」をクリックします。

    Create Mobile Appのステップ2
  50. Request NamecreateDepartmentと入力して、「Finish」をクリックします。

    Create Mobile Appのステップ2

    作成したすべてのAPIをREST APIタブで確認できます。

    Create Mobile Appのステップ2
  51. 作業内容を保存します。

これですべてのAPIの作成が完了しました。次に、これらのRESTサービスにプログラムからアクセスするためのアーチファクトを生成できます。

ステップ5:アーチファクトの作成

前の項では、アプリケーションに必要なすべてのRESTサービスAPIを作成してテストしました。この項では、アプリケーションからこれらのRESTサービスにアクセスする際に使用するアーチファクトを生成します。

  1. REST APIタブで、「Artifact Generation」アイコンをクリックします。

    adfmf-feature.xml
  2. Select and artifact generatorで、「Java 1.8 REST Client POJO」を選択し、「Next」をクリックします。

    Features表
  3. Create Connection」をクリックして、名前付きコネクションを作成します。

    Featureダイアログ
  4. コネクションの名前としてHRRestServiceと入力し、「Finish」をクリックします。

    Features表
  5. Java Class and Package Namesダイアログで、Java Namehrserviceと入力し、「Next」をクリックします。

  6. Generation Settingsをデフォルト値のままにして、「Next」をクリックします。

    Create HTML File

    Generationウィザードの次のパートで、使用するAPIを選択します。

  7. Add」アイコンをクリックします。

  8. help.htmlページ
  9. Select Requestsダイアログで、「getDepartmentList」、「getDepartmentById」、「updateDepartmentById」を選択して「OK」をクリックします。

    Features表
  10. Service Classダイアログに選択したAPIが表示されます。「Finish」をクリックしてアーチファクトを生成します。

    Features表
  11. アプリケーション内でアーチファクトを生成(さらには更新)しているため、影響を受けるファイルのリストが表示されます。変更がある場合は、そのファイルが表示され、下側のパネルに変更前後のペインが表示されます。「OK」をクリックして、変更を許可します。

    Features表
  12. HRView」→「src」を展開して、生成したアーチファクトを確認します。

    Features表
  13. mobile.model.service.hrservice」を展開して「RESTService.java」をダブルクリックします。

    Features表

    Oracle Enterprise Pack for EclipseでRESTService.javaが生成されたときに、オブジェクトを引数として受け取るメソッドが生成されています。しかし、アプリケーションがこのRESTサービスを呼び出すときには、オブジェクトではなくStringを引数として想定します。

  14. そのため、getDepartmentByIdupdateDepartmentByIdのメソッド・シグネチャを(Object id)から(String id)に変更します。

    Features表
  15. 作業内容を保存します。

チュートリアルのこのパートでは、RESTサービス・エディタを使用してRESTサービスをテストし、そのAPIを作成しました。いくつかのAPIは、RESTクライアントを開発してそれをAPIとしてインポートすることで作成しました。また、エディタで直接APIを作成しました。

次に、数個のAPIを選択して、アプリケーションをサポートするPOJOアーチファクトを生成しました。

チュートリアルの次のパートでは、REST POJOに基づいてデータ・コントロールを作成し、それをMAFアプリケーションで利用します。

ブックマーク 印刷 すべて表示 | すべて非表示

トップへ戻る
Copyright © 2015, Oracle and/or its affiliates.All rights reserved.