POST 是否是正确的 HTTP 方法/动词,用于告诉服务器使用哪个标准来检索数据然后将其保存在本地?
我想从客户端(Windows 窗体)应用程序/实用程序发送一个 URL 到我的 Web API 应用程序,告诉它通过存储过程检索数据,然后将结果存储在本地表中。没有数据返回给调用者,它只是做一些工作的通知。
为此,我向 WebApiConfig 添加了一条新路由:
// Some reports (monthly) only need a begindate, such as "201509"; others need a range
// of 2..13 months, such as "2001502" and "201602")
config.Routes.MapHttpRoute(
name: "ReportsApi",
routeTemplate: "api/{controller}/{unit}/{begindate}/{enddate}",
defaults: new { enddate = RouteParameter.Optional }
);
在 Controller 中,此方法已经存在(已自动添加):
// POST: api/PriceCompliance
public void Post([FromBody]string value)
{
}
...但我不知道我是否想要“[FromBody]”爵士乐,所以我添加了这个:
public void Post(String unit, String beginDate, String endDate)
{
// TODO: Call the corresponding SP (via a Model or directly here?) and store the results in a table.
}
这是正确/更好的方法吗,还是最好将 URL args 从“[FromBody]”中提取出来?事实上,POST 甚至是用于这类事情的正确 HTTP 动词吗?