我使用Openrasta我的RESTful Web服務和我有一個小疑問至於方法的參數和URIOpenRasta URI和方法結合澄清 - RESTful Web服務
例如:我下面的用戶設置實體。
配置:
ResourceSpace.Has.ResourcesOfType<User>()
.AtUri("/user")
.And.AtUri("/user/{userId}")
.HandledBy<UserHandler>()
.AsJsonDataContract()
.And.AsXmlDataContract();
處理程序方法PUT:
public OperationResult Put(long userId, User user){}
URI爲同樣會http://localhost/User/1
請求體將包含如下一個JSON:
{
"userId":1,
"userName":"FirstName"
}
這裏,我的問題是:用兩個參數定義PUT方法是否正確?如果這是正確的方法,那麼PUT方法中的userId參數將包含與User實體屬性UserId相同的值。
而且,在PUT方法中,我需要驗證這兩個值是否相同,如果它們不相同,則返回BadRequest,表明該URI與請求中提供的實體不匹配。爲什麼我們應該明確地做到這一點,爲什麼在處理請求時不能處理它,並讓PUT方法只將用戶實體作爲參數?我是否錯過了任何東西,或者我對這種設計的理解完全錯誤?有什麼想法或意見嗎?
你的解釋很有道理,可能是我忽略了其他情況。 – JPReddy