为yii休息api

时间:2013-06-01 12:46:35

标签: rest yii

我正在尝试通过官方示例在yii中实现REST api,现在我遇到了很多错误而不是响应http://www.taxitaxi.kz/dispatcher/index.php/api/drivers

有人可以告诉我这是什么问题吗?

1 个答案:

答案 0 :(得分:3)

使用RESTapi for yii实际上非常简单。然而,为了使其正常工作,在扩展的文档中正确陈述的事情中,很少有事情需要完成。

您可能错过的重要细节可能很少:

  1. 将restfullyii放入您的protected / extensions目录并制作 确保有完整的读写权限。很多次我 由于服务器权限,扩展程序无效。

  2. 确保您已更改 UrlManager 中的路线 正常。可能是这样的:

    'api/<controller:\w+>'=>array('<controller>/restList', 'verb'=>'GET'),
    'api/<controller:\w+>/<id:\w+>'=>array('<controller>/restView', 'verb'=>'GET'),
    'api/<controller:\w+>/<id:\w+>/<var:\w+>'=>array('<controller>/restView','verb'=>'GET'),
    array('<controller>/restUpdate', 'pattern'=>'api/<controller:\w+>/<id:\d+>', 'verb'=>'PUT'),
    array('<controller>/restDelete', 'pattern'=>'api/<controller:\w+>/<id:\d+>', 'verb'=>'DELETE'),
    array('<controller>/restCreate', 'pattern'=>'api/<controller:\w+>', 'verb'=>'POST'),
    array('<controller>/restCreate', 'pattern'=>'api/<controller:\w+>/<id:\w+>', 'verb'=>'POST'),
    
    '<controller:\w+>/<id:\d+>'=>'<controller>/view',
    '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
    
  3. 您必须扩展控制器类您想要api的位置 通过将其更改为ERestController来工作。这非常重要!

    示例:

       class PostController extends ERestController{ }
    
  4. 您的过滤器 accessRules 需要通过附加'_'来更改 在他们面前。

    <强>实施例。将accessRules更改为_accessRules()

  5. 如果您浏览RestController的代码,也可以 看到用户名和密码基本上是从 来自Yii :: params的参数,因此您可以在中更改它们 main.php配置文件或您可以将身份验证方法更改为 反映你的。

  6. 希望这可以解决您的问题,如果它没有显示错误的状态。

    此致