0

これは宿題です。単純な DB を作成し、サーバーに CURL 呼び出しを行って DB から結果を取得する必要があるため、必要なメソッドを含む DBClass ファイルがあります。REST アーキテクチャが一般的にどのようなものかは理解していますが、ピースをまとめることができません。これが私がこれまでに持っているものです:

  1. Model.class.php-> これは、DB への接続をインスタンス化し、DB クエリを実行して結果を返すメソッドを持つ Database クラスです。
  2. Simulator.php-> ヘルパー クラスは、localhost への HTTP リクエスト (POST または GET のみ) をシミュレートするため、私の curl 呼び出しは 'http://localhost/app/index.php' に対して行われます。
  3. index.php-> ここで CURL リクエストを受け取ります。実際には、HTTP リクエストをデコードして、リクエスト メソッド、パラメータ、URI などを理解します。

この時点で、私は迷っています。当然のことながら、RESTful API リクエストは基本的に server/getMeMyBananas のようなものであり、getMeMyBananas はユーザーのバナナを探して ID を返す DB メソッドです。これが index.php ファイルと欠落している部分にどのようにマップされるか混乱しています。

素晴らしいリソースへの提案やリンクは大歓迎です。セキュリティや最先端の​​ Web サービスの作成には興味がありません。

4

2 に答える 2

1

getMeMyBananas は RPC ルートの例です

REST では、4 つの主要な HTTP 動詞 GET、POST、PUT、および DELETE が、名詞 (リソース) に対して作用する動詞です。

REST は標準ではありません。これは、HTTP を基盤として使用してリモート システム用の API を作成する方法について、おおまかな推奨事項です。

REST API で RPC のようなルートを設計できないことは言うまでもありません。人々はいつもそれをしています。主に動詞を使用して、作成 (POST)、取得 (GET)、更新 (PUT)、または削除 (DELETE) するだけです。それが頭字語CRUDになります。したがって、REST を使用すると、CRUD に固執するだけで、情報交換の多くのシナリオをカバーできます。

そのため、URL (ルート) を名詞 (リソース) に似せて設計し、PHP でスイッチ ケースを作成して HTTP 動詞をオンにすることから始めます。RPC のようなルートを使用することに何の問題もありません。実際、単純な REST CRUD シナリオですべてのケースを処理できるわけではないため、RPC のようなルートでそのシナリオに適合しないケースを処理する必要があります。

見る:

http://dojotoolkit.org/reference-guide/1.8/quickstart/rest.html

後で、PHP で構築された API に興味がある場合は、API インフラストラクチャを構築し、それをオープン ソース化しました。参考になるかわかりませんが、以下です。

https://github.com/homer6/blank_altumo

于 2012-12-06T02:15:39.710 に答える
1

任意の URL を任意のパスにマップできます。
たとえば、Apache を使用している場合は、ModRewriteを使用http://ex.com/rest/bananasして、http://ex.com/index.php?p1=rest&p2=bananas

そこからグローバル変数 get を使用してリクエスト パラメータを取得できます$_GET["p1"]それらに対してisset()テストを実行することをお勧めします。

その後、データを取得したら、ほぼすべてのクライアントが読み取れるように JSON にパッケージ化することをお勧めします。

それは基本的に私がそれを行う方法です!さらに質問がある場合は、先に進んでください:)

于 2012-12-06T02:18:28.870 に答える