2012-01-15 7 views
1

これは2つの部分からなる質問なので、ここで質問を複写する場合は事前にお詫びします。PHP - RESTリクエストURIの解析と結果の返信

私は仕事のために構築しているWebアプリケーション用にPHPでREST APIを実装しています。これまでのところ、私はUserデータベーステーブルを照会し、結果をJSONエンコーディングで返す関数を実装しました。

私が(GETメソッド、btwを使用して)リクエストを行う方法は、URL:http://api.my-wicked-awesome-webapp.com/?method=getAllUsersにリクエストしています。その結果、JSONがエンコードされ、Webページにプレーンテキストとして出力されます。さて、それはうまくいきますが、私の考えでは、フォーマットはちょっとぎこちないように見えます。

私の質問の第1部:最初の例のURLと同じことを行うhttp://api.my-wicked-awesome-webapp.com/users/などのURLへのリクエスト(この場合はGETリクエスト)を解析するにはどうすればよいですか?

私の質問の第2部:今のところ、最初のサンプルURLをWebブラウザに入力すると、WebページにJSONエンコード結果が表示されます。そのデータを他のウェブページにどのように引き込むのですか? JQuery.ajax()を使用してリクエストを作成し、データを取得できますか?もしそうなら、私はそれをどうやって行うべきですか?

いつものように、私の質問のいずれかがうまく言われなかった場合は、何かを言い換えて嬉しく思っています。すべての回答に事前に感謝!あなたは.htaccessファイル上でmod_rewriteが必要

答えて

1
  1. 、あなたがからJQuery.ajax()を呼び出すことができます。これは、http://api.my-wicked-awesome-webapp.com/index.php?method=ANY_NAME

  2. http://api.my-wicked-awesome-webapp.com/ANY_NAME/のような任意のURLをマップします

    RewriteRule ^([^/]*)/?$ index.php?method=$1 [PT,L] 
    

    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^users/?$ index.php?method=getAllUsers [PT,L] 
    

    ベター使用あなた行うメインapi.my-wicked-awesome-webapp.com。しかし、foreign.domain.comからではありません。別のドメインからやりたい場合は、JSONPを使う必要があります。

    あなたが

    $.getJSON(
        "http://api-my-wicked-awesome-webapp.com/?method=getAllUsers&callback=?", 
        function(data) { 
        } 
    ); 
    

    としてそれを呼びたいとindex.phpにあなたは$_GET['callback']で出力をラップする必要がJSONPを使用し

    $.getJSON('http://api.my-wicked-awesome-webapp.com/users/', function(json){ 
    }); 
    

    、と呼びたいJSONを使用しました。何かのようなecho "$_GET['callback'](".$JSON_DATA.")";それは読み込み時にコールバックを呼び出すでしょう。

+0

JSONPの処理では、API URLにコールバックパラメータを指定する必要がありますか? YouTubeのどこかで、 'http://api-my-wicked-awesome-webapp.com/?method = getAllUsers&callback =? 'のような別のパラメータを指定する必要があることがわかりました。それでも対応できますか、コールバックパラメータを省略することはできますか? –

+0

更新された回答を今すぐ見てください。 –

+0

ああ!私はこれがどのように動作するかを見ます!どうもありがとうございます! –