我看过的所有WebAPI示例都展示了如何使用控制器进行基本的CRUD设置。例如,下面的控制器在我的应用程序中显示campaigns
的控制器:
public IEnumerable<CampaignModel> Get()
{
return _campaignService.GetAll();
}
public CampaignModel Get(int id)
{
return _campaignService.GetByID(id);
}
public void Post(CampaignModel campaign)
{
_campaignService.Create(campaign);
}
public void Put(CampaignModel campaign)
{
_campaignService.Update(campaign);
}
public void Delete(int id)
{
_campaignService.Delete(id);
}
这一切都很好,我最终得到了一些好的端点,格式如下:
但是,我现在想进一步扩展api并添加以下端点:
是否可以将这些作为与上述CRUD操作相同的控制器的一部分?或者我是否必须添加其他控制器,然后为每个端点设置路由?
答案 0 :(得分:3)
在here
上查看“按操作名称路由”routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
public class CampaignsController : ApiController
{
[HttpPost]
public void send();
[HttpPost]
public void schedule(DateDto date);
}
将映射到“api / campaigns / send”和“api / campaigns / schedule”