2011-11-09 11 views
1

私は最近Luracast Restlerを使ってプロジェクトを開始しました。 REST APIを設定するのは非常に簡単で効果的な方法です。非常に少ないコードで、カテゴリーと商品のリソースにCRUDサービスを提供することができました。 私のGETメソッドは次のようになります。 ます。http:API /カテゴリ/ブックLuracast RestlerはマルチパートURIをサポートしていますか?

またはすべてのカテゴリを使用して: ます。http:APIを/

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. 
     } 
    } 
} 

クライアントが使用して、 "ブック" カテゴリの詳細を取得することができますカテゴリ

同じです。 1つの製品: http:api/products/123 すべての製品: http:api/products

これまでのところとても良いです。 もう少し複雑なものに進んでいきたいと思います。クライアントにカテゴリの製品へのアクセス権を与えたいと思います。 私は私のURIになりたい: ます。http:API /カテゴリ//製品

E.g. 
http:api/categories/books/products 

、そこから、私は提供したい: ます。http:API /カテゴリ//製品/

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ルートを作成します。

誰でも手助けできますか?何か不足していますか?アドバイスをいただければ幸いです。

答えて

1

上記の例ではすべて問題なく、1つを除いて達成しようとしているもの簡単な間違い作業を停止しました!

あなたたPHPDocコメントが

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

はまた、関連する質問 How do you organize Luracast Restler classes to create related route endpoints?

を見てみましょう次のようにコードを変更し

@が欠落しています
関連する問題