php restful 去掉后缀,php – 在RESTful API中使用Clean URL

1)如果您使用像

RecessPHP这样的RESTful框架,或者如果您在.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的rewrite模块将所有api请求重定向到处理它们的特殊PHP文件。根据您的apache配置,原始请求的(RESTful)url将存储在PHP中的服务器变量中,我相信它是$ _SERVER [‘REQUEST_URI’]。当然你也可以传递一个$ _GET []变量到包含RESTful url的PHP。

.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。我会偏离这个,我不会把它称为完美的框架,但它肯定是一个开始。祝你好运!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值