2009-07-22 3 views
3

でRESTfulなWebサービスを実装して、彼らは「論理的な住所がを使用し、」好ましくは全ての取得時の変数を使用していないと言います。私はSOFAR読んだものから、PHP</p> <p>でRESTサービスを実装する方法についていくつかのより良い理解を必要とするPHP

これらのURLがどのように処理されているか分かりません。 Like www.somename.com/productと製品はではなく、の物理アドレスです。

つまり、実際の作業を行うPHP処理コード を持つエントリファイルが必要ですか?

これはどのように機能しますか?

その後、私はカスタムXMLタグの間にデータをエコーバックすることができ、クライアントアプリケーションはこれを解析できます。私はまだajaxを扱うことから覚えています。 RESTを使用して、すべてのリソース(データまたはデータをデータから除外)をURL内に配置します。

それは私の元の質問に私を連れて行く。 これらの論理URLはどのように処理されていますか? mod_rewrite

おかげで(あるPHP以内)、リチャード・

+3

アプリを安らかに呼び出す前に読んでおくべきこと:http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven – Gumbo

+0

mod_rewriteはあなたの友人です。 – jrockway

+0

mod_rewriteはどういう意味ですか? – Richard

答えて

2

基本的な答えは、誰かが上記のコメントで述べたものです。 mod_rewriteを使用してWebリクエストをルーティングするようにApacheを設定することで、すべてのリソース要求を単一のエントリポイントにすることができます。例:

RewriteEngine On 
RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|mp3|wav)$ index.php [L] 

これは、静的でないリソースに対するすべてのリクエストをindex.phpに送信します。 index.phpは、ロードするコンテンツを決定することができます。具体的には、$_SERVER['SCRIPT_URI']を調べて、リクエストが/animals/catだった可能性があるということを解析します。

多くのMVCフレームワークはこの概念を採用しており、このルーティング方法をコントローラとビューをロードする方法として利用しています。

+0

ありがとう、なぜこれはどのチュートリアルでも言及されていないのですか? 私はホストによって共有サーバ上にいます.zendフレームワークで。 オンになっていない場合、私は何かできますか? – Richard

+0

共有ホストでは、しばしば使うことができます。htaccessファイルを使用して、メインのApache構成にアクセスできない場合にディレクトリ内に設定ディレクティブを指定することができます。 Webルートの.htaccessファイルを設定することができます。 – zombat

+0

これはRESTの仕組みです。私はhtaccessを学ばなければならないので、私はこの質問に戻りません。あなたはおそらく論理的な住所を処理するために、例文、リンクなどを知っていますか? – Richard

0

IMO、PHPでのRESTfulなWebサービスのための最良の方法は、RESTfulなものをサポートし、理解する既存のフレームワークの1つを使用することです。 CakePHPとCodeIgniterを検索してください(おそらく、Symfony、私は分かりません)。RESTのことをすべて行います...それらのどれも完璧なものではありません。私はCakeとCIを使いました。私はCIを好きです。

これらのフレームワークは、Apacheでホスティングしている場合は.htaccessとmod_rewriteを使用しますので、これまでの回答を心に留めてください。

関連する問題