2012-12-17 20 views
5

私は記事を読んでされています:フレームワークなしでREST要求をルーティングしますか?

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

残りのAPIを構築する方法を学びます。ある時点では、「あなたがユーザーのために正しいコントローラに要求をルーティングしたと仮定すると」

どのように私はフレームワークなしでこれを行うことができますか?

EDIT:

私は別のアプリケーションからと対話できるREST APIを書いています。私は上記のチュートリアルを準備しました。それはほとんどの場合意味がありますが、要求をユーザーの正しいコントローラにルーティングすることが何を意味するのかを正確に理解できません。

+0

PHP MVCを使用する場合は、既存のフレームワークを使用しないことをお勧めします。あなたがそれを自分自身で行うことを強く求めているのであれば、正確にあなたがしようとしていることをさらに定義する必要があります。今のところ、これは現在の形では答えることができません。あなたはHTTPリクエストを受け入れる何かを書く方法を尋ねています...実際の新しいMVCフレームワーク..? – thatidiotguy

答えて

3

Apacheを使用していると仮定すると、mod_rewriteといくつかのPHPベースのロジックを組み合わせて簡単に実行できます。たとえば、あなたの.htaccessやバーチャルホストの定義では、ルート、単一のハンドラを介してすべての要求は、おそらくindex.phpできます

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

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

...その後、あなたのindex.phpファイル内のような何かを行います

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

あなたがしようとしているように聞こえるようにするには、複数の方法がありますが、これは単なる1つの方法です。最終的には、あなたの具体的な要件が何を指示するかによって決まります。上記のパターンはかなり一般的ですが、多くのフレームワークはそれを使用します。

乾杯

+0

私はこれを試してみるつもりです。.htaccessを編集する経験はあまりありませんが、私はそれを読み込もうとします –

+0

素晴らしい。あなたの質問に答えたと感じたら、それを受け入れることを検討してください。 http://stackoverflow.com/faq#howtoask – Madbreaks

+0

私は通常、私が問題を見つけ出すまで待つでしょう –

0

これは用語の問題だと思います。あるレベルの一般化を持つすべてのコードを「フレームワーク」と呼ぶことができます。そして、あなたが一般化の初歩レベルを提供する "ルーティング"について尋ねているので、すべての実装はフレームワークになります。

既存の完全なフレームワークを使用したくない場合は、独自の軽量実装を作成できます。彼は現代の本格的なフレームワークを使用すると、より適切なようなものをプログラミングする方法、まだいくつかあると思うので(作者がこの投稿を削除することを決定しました

に、例えば、いくつかの他のサイトで提供されています。

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

+0

私はopの質問はかなり具体的だと考えています:どのように適切なコントローラにリクエストをルーティングするのですか?MVCフレームワークを実装する方法ではありません。 – Madbreaks

+0

自己製作のMVCに関するすべてのドキュメントは、ルーティングの側面を非常によく説明しています。 – Stan

+0

2番目のリンクは死んでいます – Goose

関連する問題