2014-02-10 53 views
0

我已經使用Slim Framework構建了後端REST API,並儘可能地遵循REST格式。爲REST API實現Ajax調用

一旦我開始在前端,我意識到工作是AJAX的偉大工程與參數而不是路徑

(PARAM文件?Param =參數值,路徑的文件/對象/方法/ ID)

我計劃外包或者用xamarin或其他第三方構建APP來使用API​​,但現在Alpha測試將使用HTML和AJAX調用完成。

調用示例example.com/user/test或example.com/advertiser/2

那麼,如何查詢API,做我只是Concat的URL字符串?

.ajax({... url:'example.com/user/'+user ...});

編輯:

是的,我知道AJAX是域敏感的,是的,我現在用的動詞GET,POST,PUT和DELETE。

這是怎麼回事如下:

當傳遞變量在AJAX請求他們得到的REST API中追加爲

PARAMS example.com/users/?user=Pogrindis

至少據我讀它去

example.com/users/Pogrindis這是一個路徑

參考parse.com/docs/rest#general - 快速

+0

什麼的Ajax調用解決你試過嗎?如果它是跨域允許標題等? – Pogrindis

+0

不,我的ajax請求工作正常,我很好奇如何圍繞基於路徑而不是params的其餘API格式來模擬AJAX。 – c3cris

+0

REST API調用涉及不同的VERBS用於API對這些即GET,POST,PUT,DELETE執行操作。所以你可以使用簡單的jquery ajax發送請求。對於GET和DELETE,您可以將參數作爲查詢字符串發送,對於POST和PUT則使用POST。當你使用AJAX調用API端點時,也要小心api端點必須支持跨域請求。 –

回答

0

在這裏做了一些研究之後再使用

前端

$.ajax({ 
    url: '/user/'+getid, 
    data: getdatastring, 
    type: 'GET', 
    datatype: 'json', 
    cache: false, 
    success: function(data) { 
    data = JSON.parse(data); 
    } 
}); 

後端 SLIM PHP框架

$app->put('/user/:id', function($id) use ($app,$_pdo) { 

    $obj = new dbModel($_pdo); 

    $objApi = new Controller($obj); 

    $arrParams = json_decode($app->request()->getBody(),true); 

    $arrUser= $objApi->getUserInfo($id,$arrParams); 



    print json_encode($arrUser); 


}); 
0

阿賈克斯集定義如何做到這一點:https://api.jquery.com/jQuery.ajax/

你傳遞用戶的PARAM,在得到// POST方法和你指定你希望什麼時候回來。

如果我理解正確的問題,你正在尋找類似:

$.ajax({ url: 'example.com/user/', 
     data: {user: user}, // Params being sent 
     type: 'post',// Or get 
     dataType: 'json' // Or whatever you have 
     success: function(output) { 
         //.. do what you like 
        } 
}); 

應該沒有問題。

傳入它的數據將附加到GET請求的url,我想這就是你的意思..你的數據對象可以在通過ajax發送之前構造。

需要有一個路徑來查詢數據。除非你在服務器上定義了一些指向正確位置的標誌,否則你可以通過一個路由參數,但你需要有一個指針URL。建立路線可能會很痛苦,隨後的呼叫會更具挑戰性,但您可以做到這一點?

+0

我以爲MVC就像MVC其example.com/user/1 在slim中,你將params作爲PATH像example.com/user/id/otherparam/3rdparam 我認爲Rest的全部意義在於使用路徑。 – c3cris

+0

我更新了我的asnwer,我以爲多數民衆贊成在你的意思.. – Pogrindis

+0

是的,但他們被追加作爲PARAMS example.com/users/?user=Pogrindis在REST API至少據我所知去 example.com /用戶/ Pogrindis這是一個路徑 參考https://parse.com/docs/rest#general-quick – c3cris