Я пытаюсь создать плагин для создания сервера API для инфраструктуры Oxwall. Я новичок в Restler, но опытный разработчик для платформы Oxwall.
Я получаю следующую ошибку при доступе к URL.
{ "error": { "code": 404, "message": "Not Found" }, "debug": { "source": "Routes.php:383 at route stage", "stages": { "success": [ "get" ], "failure": [ "route", "negotiate", "message" ] } } }
Oxwall имеет собственные методы маршрутизации и MVC. Ниже описано, как я определил маршрут (cmd – это просто фиктивное значение, чтобы заставить Oxwall считать его действительным для say / * маршрутов)
OW::getRouter()->addRoute(new OW_Route('service', 'say/:cmd', "OXWALLAPI_CTRL_Api", 'index'));
Итак, теперь, когда я пытаюсь получить доступ к http://www.mysite.com/say/hello, вы получите ошибку выше 404.
api.php:
use Luracast\Restler\Restler; class OXWALLAPI_CTRL_Api extends OW_ActionController { public function __construct() { parent::__construct(); $r = new Restler(); $r->addAPIClass('Say'); $r->handle(); } public function index() { } }
Say.php:
class Say { function hello($to = 'world') { return "Hello $to!"; } function hi($to) { return "Hi $to!"; } }
У Oxwall есть собственный файл .htaccess. Я разместил ниже .htaccess в папке плагина.
Options -MultiViews DirectoryIndex index.php <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ index.php [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L] </IfModule> <IfModule mod_php5.c> php_flag display_errors Off </IfModule>
Say.php
в той же папке index.php
? В противном случае вы должны использовать следующее в классе Say.php, если, например, ваш Say.php находится в Test / Say.php В Say.php write
<?php namespace Test; use stdClass; //..... the rest of your class
В index.php вы напишете
$r->addClass('Test\Say');
behat.yml
? base_url должен указывать на ваш путь index.php