我使用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
答案 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);
});