1)如果您使用Restful框架(如RecessPHP),或者如果您在.htaccess文件中使用mod_rewrite规则将所有API请求重定向到单个PHP文件(称为前端控制器),则不会。
.htaccess
RewriteEngine On
RewriteRule ^/api/ api.php
api.php
$request = $_SERVER['REQUEST_URI']; //this would be /users/show/abc.json
2)您可以使用apache的重写模块将所有api请求重定向到处理它们的特殊PHP文件。根据您的apache配置,原始请求的(RESTful)url将存储在PHP的服务器变量中,我相信它是.当然,您也可以将一个包含RESTful url的变量传递给PHP。$_SERVER['REQUEST_URI']
$_GET[]
.htaccess
RewriteEngine On
RewriteRule ^/api/([^\.]+).(xml|json|atom) api.php?url=$1&type=$2
api.php
$request_parts = explode('/', $_GET['url']); // array('users', 'show', 'abc')
$file_type = $_GET['type'];
$output = get_data_from_db(); //Do your processing here
//You can outsource to other files via an include/require
//Output based on request
switch($file_type) {
case 'json':
echo json_encode($output);
break;
case 'xml':
echo xml_encode($output); //This isn't a real function, but you can make one
break;
default:
echo $output;
}
3)Twitter(和许多其他API)使用它,因为它是提供应用程序期望从API返回的格式的便捷方式。所有 API 请求都重新路由到单个 PHP 文件,该文件处理所有文件的创建并将其内容回显到输出。该文件实际上永远不会存储在服务器上(除非它被缓存)。
良好的资源
关于RecessPHP的说明。这当然是一个很棒的工具,我鼓励你看看它(也许在它的来源,以了解它如何处理事情),但话虽如此,它对我来说似乎有点笨拙。路径名写在特殊注释中的事实对我来说似乎非常不是PHP。我会偏离这个,我不会称之为完美的框架,但它肯定是一个开始。祝你好运!