[英]How to call HTTP POST method from another Controller which Have a HTTP GET method in WEB API 2
[英]How to disallow a post method from Get method in Web API?
我只是在學習 WebAPI,很好奇我們是否可以在 get 方法中重用 Post 方法,或者它只是違反了編碼標准。 我們如何測試此違規行為是否已被某人執行?
// GET api/values/5
public string Get(int id)
{
var value= vc.Values.Where(v => v.Id == id).Select(v => v.Value1).SingleOrDefault();
if (value==null) Post("New Value",id);
return vc.Values.Where(v => v.Id == id).Select(v => v.Value1).SingleOrDefault();
}
// POST api/values
public void Post([FromBody]string value, int id = 0)
{
vc.Values.Add(new Value { Id=id,Value1 = value });
vc.SaveChanges();
}
這是兩個問題,不是一個。
像這樣重用代碼是災難的秘訣。 例如,您可以通過將代碼移動到庫中來保持端點非常纖薄。 然后您可以簡單地從端點調用這些新方法,這將處理代碼重用部分。
就您如何檢測此類問題而言,我不希望有一個工具可以為您做這件事。 你需要一個成熟的 SDLC,你需要代碼審查和分析你已經擁有的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.