各製品の資料を入手。
詳細はこちら →製品をチェック
製品の詳細・30日間の無償トライアルはこちら
CData ConnectOData SDK for PHP を使ってREST のデータを取得
CData Connect Server を使えば、OData を使ってREST のデータにアクセスできます。CData Connect Server とOData PHP SDK を利用することで、REST のエンティティをPHP で取得して、オブジェクトとしてモデル化できます。
加藤龍彦デジタルマーケティング
最終更新日:2022-11-25
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData Connect Server はREST のデータをWeb サービスとして公開します。 この記事の手順を実行することで、REST のデータをPHP オブジェクトとして扱うことができるようになります。
CData Connect Server はREST のデータへのクラウドベースのOData インターフェースを提供し、ODataPHP SDK からREST のデータへのリアルタイム連携を実現します。
REST の仮想OData API エンドポイントを作成
まずCData Connect Server でデータソースへの接続およびOData API エンドポイント作成を行います。
- CData Connect Server にログインして、「DATA MODEL」をクリックします。
- 利用できるデータソースアイコンから"REST" を選択します。
-
REST に接続するために必要なプロパティを入力します。
データソースへの認証については、データプロバイダーのヘルプドキュメントの「はじめに」を参照してください: データプロバイダーはREST API を双方向データベーステーブルとして、XML/JSON ファイル(ローカルファイル、一般的なクラウドサービスに保存されているファイル、FTP サーバー)を読み取り専用のビューとしてモデル化します。HTTP Basic、Digest、NTLM、OAuth、FTP などの主要な認証スキームがサポートされています。認証についての詳細は、ヘルプドキュメントの「はじめに」を参照してください。
URI を設定し、認証値を指定したら、Format を"XML" または"JSON" に設定して、データ表現をデータ構造により厳密に一致させるようにDataModel を設定します。
DataModel プロパティは、データをどのようにテーブルに表現するかを制御するプロパティで、以下の基本的な設定を切り替えます。
- Document (デフォルト):REST データのトップレベルのドキュメントビューをモデル化します。データプロバイダーはネストされたエレメントをデータの集計として返します。
- FlattenedDocuments:ネストされたドキュメントとその親を単一テーブルとして暗黙的に結合します。
- Relational:階層データから個々の関連テーブルを返します。テーブルには、親ドキュメントにリンクする主キーと外部キーが含まれます。
リレーショナル表現の構成について詳しくは、「REST データのモデル化」を参照してください。次の例で使用されているサンプルデータもあります。データには、人、所有している車、およびそれらの車で行われたさまざまなメンテナンスサービスのエントリが含まれています。The data includes entries for people, the cars they own, and various maintenance services performed on those cars.
- 「Test Connection」をクリックします。
- 「USERS」 -> Add をクリックして、新しいユーザーを追加し、適切な権限を指定します。
- API タブをクリックして OData API エンドポイントが生成されていることを確認します。
コネクションとOData エンドポイントを設定したら、PHP からREST のデータに接続できます。
-
まずは、ODataPHP SDK を使用してCData Connect Server が公開したWeb サービスに接続するプロキシクラスを作成します。
URI 部分を書き換えて、次のようなコマンドを実行してください。
php C:\PHPLib\ODataphp\PHPDataSvcUtil.php /uri=https://your-server:8032/api.rsc/@your-authtoken/ /out=C:\PHPLib\ODataphp\RESTEntities.php
このコマンドは、OData エンドポイントが返すメタデータからクラスを定義して、指定したフォルダにクラスの定義を出力します。
CData Connect Server およびOData SDK for PHP は、どちらもフォームとWindows 認証をサポートします。CData Connect Server はOData エンドポイントへのアクセスが認可されたユーザーの認証に、認証トークンを使用します。認証トークンはHTTP Basic 認証の際に渡したり、OData URL に付加することで使用できます。
認証済みのユーザーは、CData Connect Server の管理コンソールのUsers セクションで設定できます。
-
これで、PHP のオブジェクト指向インターフェースを使ってREST のデータにアクセスできます。以下のコードはpeople テーブルのレコードを作成してリアルタイムデータを取得し、新しく作成したレコードを表示します。
require_once 'RESTEntities.php'; try{ $svc = new CDataAPI(); $people = new people(); $people->[ personal.name.last ] = 'Roberts'; $svc->AddTopeople($people); $svc->SetSaveChangesOptions(SaveChangesOptions::None); $svc->SaveChanges(); $response = $svc->people()->Execute(); foreach($response->Result as $people) echo $people->[ personal.name.first ].""; } catch (Exception $e) { //CData Connect Server からのエラーをキャッチ echo $e->getError(), "\n"; }
おl>