我正在使用ASP.NET的WebAPI創建一個Web服務。除POST,PUT,DELETE,GET之外還有其他的HTTP方法
似乎在ApiController方法名稱映射到URI。
例如,PutProducts增加產品
如果我想執行說方法..一個批處理文件..喜歡ExecuteProcess1();
這個不用返回任何商業價值的任何值。這只是爲了客戶隨意解僱,這將適合我的網絡服務?應該調用什麼方法?
我正在使用ASP.NET的WebAPI創建一個Web服務。除POST,PUT,DELETE,GET之外還有其他的HTTP方法
似乎在ApiController方法名稱映射到URI。
例如,PutProducts增加產品
如果我想執行說方法..一個批處理文件..喜歡ExecuteProcess1();
這個不用返回任何商業價值的任何值。這只是爲了客戶隨意解僱,這將適合我的網絡服務?應該調用什麼方法?
如果方法修改您的服務器上的一些國家(如在數據庫中更新記錄,寫入文件......),你應該使用POST HTTP動詞。根據資源這個方法是修改你可以有一個相應的API控制器:
public class SomeResourceController: Controller
{
public void Post()
{
... do the processing here
}
}
顯然,你將取代SomeResource在此控制器與你操縱(產品,訂單資源的名稱,人,...)。
您可以使用POST或GET,這取決於你要更新什麼。但在這種情況下,您應該使用正常的mvc控制器和操作。 WebApi與否,它們仍然是HTTP請求。
如果你正在考慮過程的資源,那麼在理想情況下,你會做一個POST [假設你張貼的進程名]別的一個與成功的過程需要執行相應的查詢參數的GET。
更好的方法是POST啓動過程的,能看到完全一樣,正在進行等
只要你可以使用任何你想要的HTTP動作,使工作過程的狀態。但遵循REST Api如何使用的最佳實踐,其簡單概念是:
因此:
ExecuteProcess
運行過程,在服務器上創建的東西,使用POST。
所以這不會是ApiController的一部分嗎? – 2013-02-19 07:28:20
當然,它將是一個'ApiController'的一部分。所有操作都需要成爲某個控制器的一部分。你只需要爲你的資源選擇正確的名稱。這將取決於您在服務器上操作的信息種類。 – 2013-02-19 07:30:55
這在技術上並非如此。 PUT和DELETE也會修改服務器上的某些狀態。 – Aliostad 2013-02-19 10:49:23