カスタムAPIの設計について学習
Oracle Mobile Hubで、モバイル・アプリケーションで使用可能なカスタムREST APIを作成できます。
モバイル・アプリケーション開発者の場合は、APIデザイナを使用して、定義するエンドポイントの概略化およびテストを行い、サービス開発者がAPIの詳細(リソース・タイプまたはトレイトの追加、スキーマの指定、およびAPIとそのエンドポイントへのアクセス権の設定)を入力して、JavaScriptに実装します。サービス開発者は、APIデザイナを使用してモック・データでテストできる完全なAPIを明示的に構成します。また、コードを記述せずに、RESTまたはFusion ApplicationsコネクタからカスタムAPIを生成することもできます。
既知のサービスのコア・セットを提供するOracle Mobile HubプラットフォームAPIとは異なり、カスタムAPIを使用すると、Node.jsを使用して、モバイル・アプリケーションで必要なサービスをコード化して、RESTインタフェースを介して公開できます。Oracle Mobile Hubコネクタを使用して、複雑なデータをモバイル・フレンドリなペイロードに変換するバックエンド・サービスにデータをリレーできます。カスタムAPIを使用して再使用可能なサービスのカタログを構築することで、モバイル・アプリケーションの実装詳細の定期的な再作成および保守に要する時間を大幅に節約できます。
API設計プロセスについて
API Designerは、カスタムAPIの作成プロセスをガイドします。
いくつかのステップを行うだけで、APIのドラフト・バージョンを迅速に作成できます。
-
基本情報(APIの名前、メッセージ・メディア・タイプ、簡単な説明)を追加します。
-
リソースおよび少なくとも1つのメソッドを設定して、エンドポイントを定義します。
-
アクセス・セキュリティを設定します。
-
少なくとも1つのリソースを定義したら、エンドポイントをテストします。
APIの構成が完全に終了していない場合でも、モック・データを作成してエンドポイントを迅速にテストおよび検証できます。メッセージ本文を定義する際、プレースホルダの値を指定して、正しいデータが送信または返信されることを検証できます。
APIを完全に完了するには、API Designerを使用して、堅牢なAPIに不可欠なコンポーネントを追加します。
-
APIメタデータ(API表示名、API名、簡単な説明など、APIの基本属性)を指定するか、APIの構成を含むRAMLドキュメントがすでに存在する場合はそれをAPI Designerにアップロードできます。すべての情報(メタデータ、リソース、メソッドおよびメッセージ本文のスキーマ)がRAMLドキュメントから抽出されてAPI Designerにロードされるため、エンドポイントのテストやAPI構成の編集にすばやく進むことができます。
-
1つ以上のルート・リソースおよびネストされたリソースを追加します。
-
リソースに対して実行するメソッドを追加します。
-
データの本文を説明するスキーマを作成します。
-
設計時にサンプル・データでエンドポイントをテストし、必要に応じて変更を加えます。
-
APIへの匿名アクセスを許可、またはそれにアクセス可能なロールを指定します。
-
カスタムAPIのドキュメントの追加
後から追加でAPIを作成するときに、同じメソッドを何度も繰り返し定義し、同じパラメータなどを使用していることがわかります。リソースのタイプと特性を作成することで、冗長性を削減できます。APIがまだドラフト状態の場合は、構成に戻って、定義したリソース・タイプおよびトレイトを追加できます。
コネクタのカスタムAPIの生成について
Oracle Mobile Hubでは、コネクタからカスタム・コードを生成して外部サービスに接続できます。サービス開発者は、有効なディスクリプタを使用して作成されたOracle Fusion ApplicationsコネクタまたはRESTコネクタを選択し、カスタムAPIを生成できます。生成されたAPIを使用して、カスタムAPIの実装から、またはモバイル・アプリケーションからこれらのサービスを簡単にコールできます。
コネクタは、モバイル・バックエンドがエンタープライズ・システムやサードパーティAPIなどの外部サービスと通信できるようにする、つまり、モバイル・アプリケーションがそのサービスの機能と対話できるようにする手段です。コネクタAPIは、特定の外部サービスと通信してデータを送信および受信するための構成です。
サービス開発者は、コードを記述せずに、コネクタAPIのメソッドを公開し、デフォルトの実装を提供するカスタムAPIを生成できます。
カスタムAPIは、コネクタAPIの各リソースのエンドポイントを使用して生成され、ロールなどのAPIの詳細を引き続き指定するためにAPIデザイナで開かれます。生成されたカスタムAPIからのすべてのリクエストをターゲット・コネクタAPIに渡すデフォルト実装も生成され、生成されたAPIに割り当てられます。コネクタのセキュリティに必要なロールをAPIに割り当てたらすぐに、実装を使用してAPIをテストできます。実装をダウンロードして変更し、アップロードできます。
コネクタのカスタムAPIを作成できるということは、コネクタのテストに使用するプロトタイプを作成するほうが簡単なことを意味します。変更が必要な場合は、コネクタにすばやく変更を加え、新しいカスタムAPIおよび実装を生成できます。問題がなければ、カスタムAPIおよび実装の最終バージョンを生成できます。
- 記述子を使用して定義されたRESTコネクタまたはOracle Fusion Cloud Applicationsコネクタを開発します。
- カスタムAPIをコネクタから生成します。APIデザイナで開くと、1つ以上のロールを定義したり、APIで必要な認証を指定できます。
- 生成されたAPIは、モバイル・デバイスからすぐにコールできます。デフォルト実装は、生成されたAPIからのすべてのリクエストをターゲット・コネクタAPIに渡します。
- 場合によっては、実装をダウンロードして変更し、返されるデータを形成する必要があります。
- コネクタを再確認し、コネクタ・リソースまたはディスクリプタを変更できます。その場合は、新しいカスタムAPIおよび実装を生成する必要があります。生成されたカスタムAPIに変更を加えた場合、変更はコネクタには反映されません。コネクタを適切に変更してから、カスタムAPIおよび実装を再生成する必要があります。
ディスクリプタを使用して定義されたRESTまたはOracle Fusion Cloud ApplicationsコネクタのカスタムAPIのみを生成できます。別のタイプ・コネクタ、あるいはRESTまたはOracle Fusion Cloud Applicationsコネクタにディスクリプタがない場合は、カスタムAPIを生成できません。
マルチパートのフォーム・データを送信する場合、またはhttp
オプション・オブジェクトを使用する場合は、実装のcallConnector
メソッドを独自のコードに置き換える必要がある場合があります。
RESTコネクタAPI
外部RESTサービスに接続するためのコネクタAPIを作成できます。これらのコネクタAPIは、カスタムAPIの実装からコールできます。
RESTコネクタAPIの動作
RESTコネクタAPIは、エンタープライズ・システムまたはサードパーティAPIでRESTエンドポイントをコールするための仲介APIです。コネクタAPIは構成の形式を取り、アプリケーションがRESTサービスに接続し、Oracle Mobile Hubで提供されるセキュリティ、診断およびその他の機能を利用するための標準的な方法を提供します。
コネクタは、HTTPSプロトコルを使用してクライアントとサーバー間で通信し、情報を渡します。渡される情報は、XMLまたはJSONの形式にすることができます(Swaggerディスクリプタに基づくサービスの場合はJSONのみ)。
リモート・サービスの指定およびセキュリティ・ポリシーの設定からエンドポイントのテストまで、RESTコネクタAPIウィザードに従ってRESTコネクタAPIを作成します。
外部リソースへの直接コールのかわりにコネクタを使用する理由
RESTコネクタAPIを使用する場合、アプリケーション・コードから外部リソースを直接コールする場合と比べて、次のような利点があります:
-
簡素化された宣言的な接続およびポリシー構成が可能になります。
-
Swaggerディスクリプタを使用して、使用可能なリソースを決定し、エンドポイントを作成できます。
-
Oracle Mobile Hub診断フレームワークと密接に統合されているため、広範な診断情報を提供します。コネクタAPIによって行われたアウトバウンドRESTコールはすべてログに記録されるため、デバッグで非常に役立ちます。
-
リモートAPIの使用状況を追跡して分析できます。
-
エンドポイントの有効性をテストする際に、設計時のサービスとの相互作用を定義して、その相互作用の期間が実行時のユーザー入力に依存しないようにできます。これにより、エンド・システムとモバイル・バックエンドの両方を危険から保護できます。
-
複数のコネクタ・タイプに、外部サービスと相互作用するための一貫した設計アプローチを提供します。
-
サービスのインタフェースに変更が加えられた場合でも、必要な更新、テスト、移行を一箇所で行うことができます。