我们正在尝试确定将复杂API层添加到nopCommerce的修改版本的最佳方法。为了支持这一步骤,我们正在为时尚/服装制造商构建一个自定义网站,该网站有很多前端应用程序需求,还需要与他们的跨平台应用程序(iOS,Android,Windows)集成。与Xamarin重建。我们暂时决定从nopCommerce开始,作为我们将添加API层的应用程序的基础。
我们不确定的是在nopCommerce(或其他类似的.NET软件包)中实现此功能的最佳方法是什么?我们正在考虑的选项是MVC vs WebAPI vs ServiceStack。我们已经通过PluralSight.com上的许多教程来了解app dev和API创建最佳实践的速度,但似乎有很多选项,我们不确定从哪里开始。我们似乎有点迷失在API的实现选项中,以及如何根据网站前端使用的JS包/框架的选择以及创建应用程序所选择的工具来评估每个API。
如果重要,我们的基本要求是:
使用一些自定义ERP样式功能扩展基本电子商务包的核心
可以有效使用Web前端(可能作为SPA)和使用Xamarin构建的所有跨平台应用程序的API层
确保跨所有界面类型的OAuth身份验证,以便我们可以在任何地方始终使用社交媒体登录,并可以在任何环境中对用户进行身份验证
鉴于此......
我的问题归结为三种API方法中的哪一种(MVC vs WebAPI vs ServiceStack)最适合这种方法?
答案 0 :(得分:4)
在我看来,你应该使用服务堆栈,它更容易实现,并且比web api更灵活,你可以为不同的功能添加/删除插件,你可以获得大量的基础设施代码OOB,例如机制处理缓存,记录器和其他不仅与基础设施相关的问题,如验证器和IOC容器等。
你会得到一个mechanism for authentication,包括自定义身份验证,oauth,oauth2等,适用于链接的,facebook和google +,在这种情况下,你会发现自己会重复使用大量代码你的应用程序。
我喜欢SS的另一件事是,实际上只是你和你的IOC,而不是其他,一切都很容易理解和实现(你可能会在文档中遗漏多个隐藏选项或配置但是你在google groups或stackoverflow中得到社区的大力支持)
它更容易测试(单元测试)你已经有了httprequest和httpresponse以及更多的抽象,你不会发现自己正在为mvc附带的所有遗留web impl做包装。
SS在performance方面优于mvc web api,它获得了最快的json序列化器之一.net
我正在研究SPA应用程序的时间问题,我对我进入SS框架的想法并不后悔。
只是我的2美分。
答案 1 :(得分:0)
我认为Web API是服务层的最佳选择 - http://www.asp.net/vnext/overview/aspnet-web-api 有许多优点 - Web API作为具有最新功能的独立组件处于发布周期 - 安全 - 版本控制 - 基于属性的路由 - OData集成