繁体   English   中英

PHP-解析REST请求URI并返回结果

[英]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()发出请求并提取数据吗? 如果是这样,我应该怎么做呢?

与往常一样,如果我的任何问题措辞不佳,我都会很乐意重新表述任何内容。 预先感谢您的任何回答!

  1. 您需要在.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

  2. 您可以从域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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM