2013-02-19 102 views
0

我正在使用ASP.NET的WebAPI創建一個Web服務。除POST,PUT,DELETE,GET之外還有其他的HTTP方法

似乎在ApiController方法名稱映射到URI。

例如,PutProducts增加產品

如果我想執行說方法..一個批處理文件..喜歡ExecuteProcess1();

這個不用返回任何商業價值的任何值。這只是爲了客戶隨意解僱,這將適合我的網絡服務?應該調用什麼方法?

回答

1

如果方法修改您的服務器上的一些國家(如在數據庫中更新記錄,寫入文件......),你應該使用POST HTTP動詞。根據資源這個方法是修改你可以有一個相應的API控制器:

public class SomeResourceController: Controller 
{ 
    public void Post() 
    { 
     ... do the processing here 
    } 
} 

顯然,你將取代SomeResource在此控制器與你操縱(產品,訂單資源的名稱,人,...)。

+0

所以這不會是ApiController的一部分嗎? – 2013-02-19 07:28:20

+0

當然,它將是一個'ApiController'的一部分。所有操作都需要成爲某個控制器的一部分。你只需要爲你的資源選擇正確的名稱。這將取決於您在服務器上操作的信息種類。 – 2013-02-19 07:30:55

+0

這在技術上並非如此。 PUT和DELETE也會修改服務器上的某些狀態。 – Aliostad 2013-02-19 10:49:23

0

您可以使用POST或GET,這取決於你要更新什麼。但在這種情況下,您應該使用正常的mvc控制器和操作。 WebApi與否,它們仍然是HTTP請求。

0

如果你正在考慮過程的資源,那麼在理想情況下,你會做一個POST [假設你張貼的進程名]別的一個與成功的過程需要執行相應的查詢參數的GET。

更好的方法是POST啓動過程的,能看到完全一樣,正在進行等

2

只要你可以使用任何你想要的HTTP動作,使工作過程的狀態。但遵循REST Api如何使用的最佳實踐,其簡單概念是:

  1. GET:從REST服務中提取資源而不更改服務器的狀態。
  2. POST:創建新資源。
  3. PUT:更新資源。
  4. 刪除:刪除資源。

因此:

  1. 如果你的方法:ExecuteProcess運行過程,在服務器上創建的東西,使用POST。
  2. 如果它更新了服務器上的某些內容,請使用PUT。
  3. 如果它刪除服務器上的某些內容,請使用DELETE。
相關問題