簡體   English   中英

如何在 Web API 中禁止來自 Get 方法的 post 方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM