我只是在学习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();
}
答案 0 :(得分:1)
这些是2个问题,而不是一个。
像这样重用代码是灾难的根源。 例如,可以通过将代码移到库中来使端点保持纤细。然后,您可以简单地从端点调用这些新方法,这将处理代码重用部分。
就如何检测此类问题而言,我不希望有一种工具能够为您解决。您需要成熟的SDLC,还需要对现有内容进行代码审查和分析。