Luracast Restler是否支持多部分URI?

Luracast Restler是否支持多部分URI?,rest,mapping,uri,Rest,Mapping,Uri,我最近开始了一个使用Luracast Restler的项目。设置RESTAPI似乎是一种非常简单有效的方法。用很少的代码,我就能够为我的类别和产品资源提供CRUD服务。 我的GET方法如下所示: class Categories { function get($id=NULL) { if (isset($id)) { // return category details for $id. }

我最近开始了一个使用Luracast Restler的项目。设置RESTAPI似乎是一种非常简单有效的方法。用很少的代码,我就能够为我的类别和产品资源提供CRUD服务。 我的GET方法如下所示:

class Categories
{
    function get($id=NULL) {
        if (isset($id))
            {
                // return category details for $id.
            }
            else
            {
                // return all categories.
            }
    }
}

class Products
{
    function get($id=NULL) {
        if (isset($id))
        {
            // return product details for $id.
        }
        else
        {
            // return all products.
        }
    }
}
客户可以通过以下方式获取“图书”类别的详细信息: http:api/categories/books

或所有类别使用: http:api/categories

产品也是如此。一种产品: http:api/products/123 所有产品: http:api/products

到目前为止还不错。 现在我想谈一点更复杂的事情。我想让我的客户访问某一类别的产品。 我希望我的URI为: http:api/categories//产品

E.g.
http:api/categories/books/products
从这里,我想提供: http:api/categories//产品/

E.g.
http:api/categories/books/products/123
这使我的客户能够使用一系列渐进的链接从一种资源转移到另一种资源,我认为这是REST的核心原则。 但我看不到用Restler实现这一点的方法。我看到有人提到JavaDoc注释用于指定URI映射,所以我尝试了以下方法:

class Products
{
    /**
    * url GET /categories/:catId/products/:prodId
    */
    function get($catId=NULL, $prodId=NULL) {
        // Get product($prodId) of category($catId)
    }
}
但这不起作用。Restler似乎没有从评论中获取任何信息;它基于类名和函数名隐式创建URI路由


有人能帮忙吗?我错过什么了吗?任何建议都将不胜感激。

在上面的示例中,一切都很好,除了一个简单的错误使其无法工作外,您正在努力实现的目标都很好

您的PHPDoc注释丢失
@

按如下方式更改代码

<?php
class Products
{
    /**
    * @url GET /categories/:catId/products/:prodId
    */
    function get($catId=NULL, $prodId=NULL) {
        // Get product($prodId) of category($catId)
    }
}

在上面的示例中,除了一个简单的错误使其无法工作之外,一切都很好,您正在努力实现的目标都很好

您的PHPDoc注释丢失
@

按如下方式更改代码

<?php
class Products
{
    /**
    * @url GET /categories/:catId/products/:prodId
    */
    function get($catId=NULL, $prodId=NULL) {
        // Get product($prodId) of category($catId)
    }
}