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

时间:2019-12-24 11:28:56

标签: c# asp.net-web-api asp.net-web-api2

我只是在学习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();
    }

1 个答案:

答案 0 :(得分:1)

这些是2个问题,而不是一个。

像这样重用代码是灾难的根源。 例如,可以通过将代码移到库中来使端点保持纤细。然后,您可以简单地从端点调用这些新方法,这将处理代码重用部分。

就如何检测此类问题而言,我不希望有一种工具能够为您解决。您需要成熟的SDLC,还需要对现有内容进行代码审查和分析。