использование верблюжьего корпуса для имени функции в рестлере - PullRequest
3 голосов
/ 12 декабря 2011
This is the web service file _ws.php
<?php
/*
 Title: Hello World Example.
 Tagline: Let's say hello!.
 Description: Basic hello world example to get started with Restler 2.0.
 Example 1: GET say/hello returns "Hello world!".
 Example 2: GET say/hello/restler2.0 returns "Hello Restler2.0!".
 Example 3: GET say/hello?to=R.Arul%20Kumaran returns "Hello R.Arul Kumaran!".
 */
require_once '../restler/restler.php';
require_once 'news_class.php';
$r = new Restler();
$r->addAPIClass('news');
$r->handle();

Это файл класса с функциями:

<?php
class news {
    function hello($to='world') {
        return "Hello $to!";
    }

    function listnews($page=0){
        $result = "";

        $xml_doc = new DOMDocument;
        $xml_doc->load('news.xml');

        $xsl_doc = new DOMDocument;
        $xsl_doc->load('news_list.xsl');

        $xsl_proc = new XSLTProcessor();
        $xsl_proc->importStyleSheet($xsl_doc);
        $xsl_proc->setParameter('', 'page', $page);
        $result = $xsl_proc->transformToXml($xml_doc);

        return $result;
    }


} // news -

Если я назвал функцию listnews для listNews, я получу эту ошибку:

{
  "error": {
    "code": 404,
    "message": "Not Found"
  }
}

Покаимя теперь смешанное, работает.Это должно быть так?Есть ли способ использовать верблюжью оболочку?

Thx!

Ответы [ 2 ]

0 голосов
/ 15 мая 2012

Обновление ответа @richard_askew, он прав.

Имя класса, имя метода и имена параметров должны быть строчными, если они помещены в URL, когда мы используем автоматическую маршрутизацию в версии 2.1.5 Рестлера или ниже

Мы только что выпустили Рестлер версии 2.1.6 , который изменяет это поведение:)

Теперь имя класса, имя метода и имена параметров, указанные в URL в любом случае (верхний или нижний или смешанный), будут сопоставлены с правильным методом

0 голосов
/ 26 марта 2012

Просто, чтобы вернуться к этому, я поигрался с кодом и у меня похожее поведение. Следующие соглашения об именах для моих методов вызывают ошибку 404:

mysite.com / myclass / testMethod
mysite.com/myclass/TestMethod

Следующая работа, как и ожидалось

mysite.com / MyClass / TestMethod
mysite.com/myclass/test_method

Можно (как я пропустил или нет) заставить Camel Case работать?

Обновление: кажется, что имя метода не вызывает ошибку, например Я могу назвать это testMethod и по-прежнему вызывать его строчными буквами.

...