1

我见过的所有 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);
}

这一切都很好,我最终得到了以下格式的一些不错的端点:

  • 获取活动/
  • 获取广告系列/{id}
  • 发布活动/{活动}
  • PUT 广告系列/{campaign}
  • 删除广告系列/{id}

但是,我现在想进一步扩展 api 并添加以下端点:

  • 发布活动/发送
  • 发布活动/时间表/{日期}

是否可以将这些作为与上述 CRUD 操作相同的控制器的一部分?还是我必须添加其他控制器,然后为这些端点中的每一个设置路由?

4

1 回答 1

3

在此处查看“按操作名称路由”

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”</p>

于 2012-08-14T09:45:30.063 回答