簡體   English   中英

Rest API或Semi Rest API

[英]Rest API or Semi Rest API

我有一個用於ProductController的控制器。 我有4個標准方法綁定到各自的HTTP方法,例如

public function index() // GET
public function create() // POST
public function update() // PUT
public function destroy() //DELETE 

到目前為止,還不錯,但是我必須做一些其他功能,例如getProductsByCategory,getProductsAttributes()等。實現此功能后,我的API仍將稱為REST嗎? 如果不是,我該如何處理這些要求

謝謝

getProductsByCategory(...)的資源URI:

GET /products?category=books HTTP/1.1
Host: service.org

getProductsAttributes()的資源URI:

GET /products/bmw-528i/attributes HTTP/1.1
Host: service.org

如何實現對這些請求URI的處理是實現的詳細信息。 如果使用某種框架,則可以執行以下操作:

Routes::add("/products/{product-id}/attributes", function($request, $response) {
    // do something here
});

但這是一個細節,不會影響您的服務的RESTfull性。

首先,REST不是嚴格的標准。 您發布的方法符合REST約定,但是REST服務必須具有其他幾個屬性。 最重要的兩個是:

  • 無狀態:無會話,無Cookie,基於每個請求的授權
  • GET請求者永不更改任何資源

還有其他內容,請隨時進行編輯或添加評論。

我大部分時間對資源執行此類操作的方式是:

/<resource-name>/<product-id>/<operation>

例如:

GET /product/<product-id>
GET /product/<product-id>/related
POST /product/<product-id>/purchase
GET /categories/tools

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM