网页API路线终点所以,我有两个独立的项目(一个网页API 2,一个MVC)这样的图:强类型MVC中
的MVC具有控制器和一个服务层。 MVC应用程序调用web api控制器的服务。例如:
await _service.GetGiftCards("/api/GiftCards/ViewAllByUser", email);
的网络API控制器的路由是定义像这样:
[RoutePrefix("api/giftcards")]
[Route("ViewAllByUser")]
public async Task<List<GiftCard>> GetGiftCardsForUser(string email){}
所以定义在MVC应用程序中的端点的路线,我只是通过像“字符串/ API/FIELDS礼品卡/ ViewAllByUser“上面。
我的问题是,是否有更好的方式来排序的“强类型”被定义,所以我可以做这样的事情?:
await _service.GetGiftCards(GiftCardController.ViewAllByUser, email);
我想在最低的网络API路线的终点我总是可以只存储端点字符串像这样一个静态类,所以他们至少可以在一个地方进行更新:
public static class ApiEndpoints(){
public string GetAllGiftCards = "api/GiftCards/ViewAllByUser";
}
但我希望知道是否有更好的方法或其他建议。谢谢!
是否有理由明确指定路线而不是依赖约定? – timothyclifford
Web API控制器将用于几个外部应用程序(Web,移动等),并将封装数据访问和业务逻辑,因此我将它们命名为更像描述性方法名称,但我可以看到依赖约定的用法在大多数情况下相反。但是不管我的路由名是什么,我仍然希望能够强烈引用它来使用它。 – reverence12389
如果你想要一个统一资源定位符的强类型表示,那么[有一种类型](https://msdn.microsoft.com/en-us/library/system.uri(v = vs.110) )的.aspx)。也许为这些家伙保留一个行动图?尽管如此,你最终会在某些时候将它们构建成字符串,因为这就是网址。 –