[英]PHP - Parsing REST Request URIs and Returning the Results
因此,这是一个分为两部分的问题,因此,如果我在此处重复问题,我先向您道歉。
我正在针对要为工作而构建的Web应用程序在PHP中实现REST API。 到目前为止,我已经实现了一个函数,该函数将查询User数据库表并以JSON编码返回结果。
我发出请求的方式(使用GET方法,btw)是向URL发出请求: http://api.my-wicked-awesome-webapp.com/?method=getAllUsers
: http://api.my-wicked-awesome-webapp.com/?method=getAllUsers
method=getAllUsers。 然后对结果进行JSON编码,并在网页上以纯文本形式回显。 现在,这种方法有效,并且这样做确实没有错,但是在我看来,这种格式显得有些笨拙。
我的问题的第一部分:如何将请求(在本例中为GET请求)解析为诸如http://api.my-wicked-awesome-webapp.com/users/
的URL与第一个示例URL相同吗?
我的问题的第二部分:到现在为止,如果我要在Web浏览器中输入第一个示例URL,则JSON编码的结果将显示在网页上。 我将如何将这些数据提取到其他网页中? 我可以使用JQuery.ajax()发出请求并提取数据吗? 如果是这样,我应该怎么做呢?
与往常一样,如果我的任何问题措辞不佳,我都会很乐意重新表述任何内容。 预先感谢您的任何回答!
您需要在.htaccess
文件上使用mod_rewrite,
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^users/?$ index.php?method=getAllUsers [PT,L]
更好地使用
RewriteRule ^([^/]*)/?$ index.php?method=$1 [PT,L]
这会将任何网址(例如http://api.my-wicked-awesome-webapp.com/ANY_NAME/
映射到http://api.my-wicked-awesome-webapp.com/index.php?method=ANY_NAME
您可以从域api.my-wicked-awesome-webapp.com
调用JQuery.ajax()
。 但不是来自foreign.domain.com
。 如果要从另一个域执行此操作,则需要使用JSONP 。
使用您称之为的JSON,
$.getJSON('http://api.my-wicked-awesome-webapp.com/users/', function(json){ });
使用JSONP,您可以将其称为
$.getJSON( "http://api-my-wicked-awesome-webapp.com/?method=getAllUsers&callback=?", function(data) { } );
在index.php
您需要使用$_GET['callback']
包装输出; 像echo "$_GET['callback'](".$JSON_DATA.")";
这将在加载时调用回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.