2015-01-08 50 views
0

鑑於
的。新增的路徑(「/國家/(編號)」,「PUT」)
和UpdateCountry DTO與命名編號
屬性時
的請求/國家/ 1已經接收
和主體爲{ 「ID」:0,...}
然後
的UpdateCountry DTO實例轉發到服務方法請求DTO填充順序和驗證

public object Any(UpdateCountry request) 

的Id屬性值爲1(根據網址段請求,而不是根據身體數據的0)

如何/哪裏可以檢測(並拋出一個異常)爲Id屬性提供的不一致的值數據)?

這種行爲讓我懷疑網段贏得了身體。在哪裏可以找到關於DTO填充排序(url segment/querystring/body)/條件的一些文檔?

聚苯乙烯:我需要在url段和dto本身由於肥皂兼容性,但我想確保誰使用其餘端點不發送不一致的請求。

回答

1

可以訪問HTTP請求的不同組件在您的服務與base.Request,如:

public object Any(UpdateCountry request) 
{ 
    var queryStringId = base.Request.QueryString["id"]; 
    var formDataId = base.Request.FormData["id"]; 
    var pathInfo = base.Request.PathInfo; // /countries/1 
} 

默認請求首先結合反序列化是公司發佈的體內,然後用任何PATHINFO,查詢字符串重寫它要求DTO和FormData變量(如果有的話)。您還可以覆蓋registering your own binding Strategy的默認請求綁定行爲。

+0

謝謝@mythz,這很有道理。如果我想要做一些AOP來保持我的服務「協議/通信不知道」,自定義綁定似乎是一種方式。我的意思是,只有當請求來自休息端點時,我纔會執行該檢查,而不是每次都遇到服務方法。 – Crixo