我正在尝试通过官方示例在yii中实现REST api,现在我遇到了很多错误而不是响应http://www.taxitaxi.kz/dispatcher/index.php/api/drivers。
有人可以告诉我这是什么问题吗?
答案 0 :(得分:3)
使用RESTapi for yii实际上非常简单。然而,为了使其正常工作,在扩展的文档中正确陈述的事情中,很少有事情需要完成。
您可能错过的重要细节可能很少:
将restfullyii放入您的protected / extensions目录并制作 确保有完整的读写权限。很多次我 由于服务器权限,扩展程序无效。
确保您已更改 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>',
您必须扩展控制器类您想要api的位置 通过将其更改为ERestController来工作。这非常重要!
示例:
class PostController extends ERestController{ }
您的过滤器和 accessRules 需要通过附加'_'来更改 在他们面前。
<强>实施例。将accessRules更改为_accessRules()
如果您浏览RestController的代码,也可以 看到用户名和密码基本上是从 来自Yii :: params的参数,因此您可以在中更改它们 main.php配置文件或您可以将身份验证方法更改为 反映你的。
希望这可以解决您的问题,如果它没有显示错误的状态。
此致