我已经阅读了几篇关于将Web应用程序和API应用程序部署到Azure的教程,但我仍然有点不确定为什么要使用其中一个。
我可以创建一个具有API控制器的新.NET解决方案,并将其部署为Web应用程序,那么为什么我需要专门的API应用程序呢?这些是否专门针对ASP.NET Web API进行优化,而Web应用程序则用于提供HTML?
我已经阅读了几篇关于将Web应用程序和API应用程序部署到Azure的教程,但我仍然有点不确定为什么要使用其中一个。
我可以创建一个具有API控制器的新.NET解决方案,并将其部署为Web应用程序,那么为什么我需要专门的API应用程序呢?这些是否专门针对ASP.NET Web API进行优化,而Web应用程序则用于提供HTML?
更新 Azure 的最新状态:
现在,App Services 代替了所有 Mobile、Api 和 Web 应用程序的类型,成为一个单一的应用框架,并在其中滚动了所有功能,以使跨应用程序类型更加易于访问。目前,Web、Mobile 和 Api 应用程序都被统称为 App Services。我们仍然为客户提供在图库中创建 Mobile 应用程序和 Web 应用程序的选项,但基本上这会转换为一个 App Service 应用程序。
https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/
移动工作的功能也适用于 Web 应用程序,例如 Easy Tables 和 Easy API。而 API 应用程序的功能,如 API Cors 和 API definitions,现在也适用于 Web 应用程序。客户可以托管单个 Web 应用程序,以充当任何移动服务或具有通过应用服务提供的所有功能的 API。
我们还推出了一项针对 API 应用程序的预览服务,通过提供 API 的管理体验,您可以控制生成尝试 API 页面、收集执行分析、限制流量等等。请查看功能博客,了解有关 Azure API 管理功能的更多信息。是的,您可以将 API 托管为 App Service 应用程序,并将其与 API 管理连接起来。
https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/
曾经在不同的应用程序服务类型之间存在差异,但现在已不再是这样了。根据文档的说明:
三种应用类型(API、Web、移动)之间唯一的区别就是 Azure 门户中用于它们的名称和图标。
因此,选择哪种应用服务类型进行部署已经不再重要(除非您在意图标的外观)。
更新
现在,函数应用是一个例外。创建函数应用将更改门户中的用户界面。但是,在底层,Web 应用程序并没有任何区别。设置名为FUNCTIONS_EXTENSION_VERSION
= ~1
的应用程序设置将任何 Web 应用程序转换为函数应用程序(减去门户中的用户界面)。
Web API和API Apps之间存在许多细微差别,但是最显著和关键的区别有:
原生Swagger实现 - 在Visual Studio中创建API App时,默认提供Swagger参考。Swagger为API消费者提供非常友好的开发人员功能,可以通过Swagger UI与您的API进行交互。此外,基于Swagger的API提供客户端SDK生成(基于.Net的客户端和基于JavaScript的客户端),这使得调用API就像调用常规方法一样容易。 注意:在常规Web API上手动实现Swagger。
能够将API Apps发布到Azure市场。Azure Market Place是所有API Apps的公共存储库,可以免费或按收费方式使用。
这个 来自Channel 9的15分钟视频提供了有关Api Apps的优秀概述。
实际上,您可以将ASP.NET WebAPI部署在Azure WebApp上,并在Worker Roles上进行自主托管。
在WebApp(前身为Azure网站)上,它将部署在IIS上,因此您可以利用IIS的功能。