【问题标题】:Restler always returning error 404 not foundRestler 总是返回错误 404 not found
【发布时间】:2012-08-16 06:54:24
【问题描述】:

我似乎无法弄清楚这一点。

班级:

class Assets {
 function getOne($id) {
    $asset = DBO_Asset::getOneByPublicId($id);

    return $asset->id;
 }
}

index.php:

require_once 'restler/restler.php';
require_once 'API/Assets.php';

$rest = new Restler();
$rest->addAPIClass("Assets");
$rest->handle();

网址:

http://localhost/api/index.php/assets/getOne/8TWVTZAU

结果:

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

我不知道为什么会创建 404,但我按照说明进行操作,但仍然没有得到任何结果。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: php rest http-status-code-404 restler


    【解决方案1】:

    Restler 使用getpostputdelete 作为方法前缀,以自动将它们映射到相应的 HTTP 方法/动词

    GET 是默认的 HTTP 方法,所以如果你不在一个方法前面加上上述任何一个前缀,它将被映射到 GET 方法

    您的 api 当前正在映射到以下 url

    http://localhost/api/index.php/assets/one/8TWVTZAU

    如果网址中的getOne 对您很重要,请使用@url 注释如下所示手动路由

    class Assets
    {
        /**
         * @url GET getOne/:id
         * @url GET getOne
         */
        function getOne($id)
        {
            $asset = DBO_Asset::getOneByPublicId($id);
            return $asset->id;
        }
    }
    

    【讨论】:

    • 谢谢,这澄清了很多! =)
    猜你喜欢
    • 2015-06-09
    • 2016-11-19
    • 1970-01-01
    • 2021-10-14
    • 2019-12-09
    • 2018-12-16
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    相关资源
    最近更新 更多