2

我们正在尝试确定向修改后的 nopCommerce 版本添加复杂 API 层的最佳方法。作为备份,我们正在为一家时装/服装制造商构建一个自定义站点,该制造商有很多前端应用程序需求,并且还需要与我们的跨平台应用程序(iOS、Android、Windows)集成。使用 Xamarin 重新构建。我们暂时决定从 nopCommerce 作为我们应用程序的基础开始,我们将在其中添加一个 API 层。

我们不确定在 nopCommerce (或其他类似的 .NET 包)中实现此功能的最佳方法是什么?我们正在考虑的选项是 MVC、WebAPI 和 ServiceStack。我们一直在阅读 PluralSight.com 上的许多教程,以快速了解应用程序开发和 API 创建最佳实践,但似乎有很多选择,我们不知道从哪里开始。我们似乎有点迷失在 API 的大量实现选项中,以及如何根据网站前端使用的 JS 包/框架的选择以及创建应用程序所选择的工具来评估每个选项。

如果重要的话,我们的基本要求是:

  • 使用一些自定义 ERP 样式功能扩展基本电子商务包的核心

  • API 层可以有效地与 Web 前端(可能作为 SPA)和使用 Xamarin 构建的所有跨平台应用程序一起工作

  • 确保跨所有接口类型的 OAuth 身份验证,以便我们可以在任何地方始终如一地使用社交媒体登录,并且可以在任何环境中对用户进行身份验证

鉴于这种...

我的问题归结为三种 API 方法(MVC、WebAPI 和 ServiceStack)中的哪一种最适合这个?

4

2 回答 2

4

以我的拙见,您应该使用服务堆栈,它比 Web api 更容易实现且更灵活,您可以为不同的功能添加/删除插件,您可以获得很多基础架构代码 OOB,例如处理缓存的机制, loggers 和其他不仅与基础设施相关的东西,如验证器和 IOC 容器等。

您将获得单一的身份验证机制,包括自定义身份验证、oauth、oauth2 等,适用于链接、facebook 和 google +,在这种情况下,您会发现自己在所有应用程序中重用大量代码。

我喜欢 SS 的另一件事是,实际上只有您和您的 IOC,除此之外,一切都很容易理解和实施(文档中可能会遗漏多个隐藏选项或配置,但您会得到来自 Google 群组或 stackoverflow 社区的大量支持)

它更容易测试(单元测试)你已经有了 httprequest 和 httpresponse 的抽象以及更多,你不会发现自己为 mvc 附带的所有遗留 web impl 做包装器。

SS 在性能方面优于 mvc web api ,它为 .net 提供了最快的 json 序列化程序之一

我正在开发一个 SPA 应用程序,我对我进入 SS 框架的想法并不后悔。

只是我的 2 美分。

于 2013-10-22T14:24:46.930 回答
0

我会说 Web API 是服务层的最佳选择 - http://www.asp.net/vnext/overview/aspnet-web-api 有很多优点 - Web API 已作为具有最新功能的单独组件处于发布周期- 安全性 - 版本控制 - 基于属性的路由 - OData 集成

于 2013-10-19T17:11:01.930 回答