2012-04-20 54 views
1

我正在建立一個網站,用戶可以出售產品。我開始與一個RESTful API,因此到目前爲止,我有:RESTful API /產品和/ myproducts

/Product (Accepts, post) 
/Product/[product_id] (Accepts, get, put, delete) 

我也想列出所有的產品,爲所有用戶的,所以我想爲:

/Products (Accepts, get) 

和這裏是我的問題,我也希望用戶查看自己的產品,所以我也想爲:

/MyProducts (Accepts, get) 

我只是覺得,有/產品& /我的產品是一種相同的,除非他們AR e在用戶身上過濾,那麼我應該使用什麼方法來做到這一點?

我想過以下,但如果這是令人難以接受的不知道:

/Products (Accepts, get) <- returns all products 
/Products/[user_id] (Accepts, get) <- returns all products for a user id. 

任何幫助,指針或指導非常歡迎!

感謝

克里斯

回答

4

簡化大幅下降。其實只有兩種資源,你需要:

  • 東西來表示產品的集合,URI:/products
  • 東西來代表單品,URI:/products/{id}

您所有的需求可以會見了剛剛那兩個資源:

  • 要看到每一個產品在系統:GET /products
  • 要看到的只是你自己的產品:GET /products?showOnlyMine=true
  • 要創建一個新的產品:POST /products返回的/products/{id}
  • 一個Location要看到單品:GET /products/{id}

隨意使用不同的URI參數當然要比showOnlyMine