6

私は記事を読んで、残りの API を構築する方法を学びました。

http://www.gen-x-design.com/archives/create-a-rest-api-with-php/

ある時点で、「リクエストをユーザーの正しいコントローラーにルーティングしたと仮定して」と表示されます

フレームワークなしでこれを行うにはどうすればよいですか?

別のアプリケーションから操作できる REST API を作成しています。上記のチュートリアルを準備しましたが、ほとんど意味がありますが、リクエストをユーザーの正しいコントローラーにルーティングすることの意味が正確にはわかりません。

4

2 に答える 2

3

を使用していると仮定すると、と PHP ベースのロジックをApache組み合わせて使用​​することで、これを簡単に実現できます。mod_rewriteたとえば、.htaccessまたは vhost の定義では、すべてのリクエストを 1 つのハンドラを介してルーティングできますindex.php

# Don't rewrite requests for e.g. assets
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*+)$ index.php?q=$1 [L]

...次に、index.php ファイルで次のようにします。

$target = $_REQUEST['q'];
/* parse the request and include the appropriate controller PHP */

たとえば、 の要求/products/1234により、controllers/products.phpハンドラーが含まれる場合があります。そのハンドラーは、その後、 product に作用する可能性があります1234。REST を使用しているため、クエリ文字列パラメーターを持つ元の要求を気にする必要はありません。

やろうとしているように見えることを達成する方法は複数ありますが、これはその 1 つにすぎません。最終的に何を使用するかは、特定の要件が何を指示するかによって異なります。上記のパターンはかなり一般的ですが、多くのフレームワークがそれまたはそれに似たものを使用しています。

于 2012-12-17T20:07:35.657 に答える
0

これは用語の問題だと思います。ある程度一般化されたすべてのコードは、「フレームワーク」と呼ぶことができます。また、一般化の開始レベルを提供する「ルーティング」について質問しているため、すべての実装がフレームワークになります。

既存の本格的なフレームワークを使用したくない場合は、独自の軽量実装を作成できます。始めるためのいくつかの記事を次に示します。

これらすべてのイントロには、ルーティング メカニズムの説明が含まれており、その実装が示されています。

基本的に、ルーターはアプリケーション内の一種の内部「DNS」(比喩的な意味で) です。リクエストがサイトに到着したら、そのリクエストのプロパティに従って、適切なワーカー クラスにディスパッチする必要があります。これはルータのタスクです。

于 2012-12-17T20:09:25.270 に答える