实现Ajax调用REST API

时间:2014-02-10 19:09:22

标签: javascript php jquery ajax rest

我使用Slim Framework构建了一个后端REST API,并尽可能地遵循REST格式。

一旦我开始在前端工作,我意识到AJAX适用于参数而不是路径

(param file?param = value,paths file / object / method / id)

我打算在xamarin或其他第三方采购或构建APP来使用API​​,但现在使用HTML和AJAX调用进行Alpha测试。

示例请致电example.com/user/test或example.com/advertiser/2

那么如何查询API,我只是连接URL字符串?

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

修改

是的我知道AJAX是域敏感的,是的我使用的是动词GET,POST,PUT和DELETE。

以下是:

在AJAX请求中传递变量时,它们会作为

附加

PARAMS example.com/users/?user=Pogrindis

在REST API中至少就我读到它而言

example.com/users/Pogrindis这是一条路径

参考parse.com/docs/rest#general-quick

2 个答案:

答案 0 :(得分:0)

Ajax已设置定义如何执行此操作:https://api.jquery.com/jQuery.ajax/

您将用户作为参数传递给了// 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。建立路线可能很痛苦,随后的呼叫将更具挑战性,但你可以做到吗?

答案 1 :(得分:0)

在做了一些研究后,这是一个使用的解决方案

前端

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

BACK END 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);


});