API App和Web App有什么区别?

时间:2015-07-13 15:10:59

标签: azure azure-web-sites azure-web-app-service azure-api-apps

我现在正在阅读一些关于将Web Apps和API应用程序部署到Azure的教程。但是,我仍然不确定为什么你会使用一个而不是另一个。

我可以使用API​​控制器创建一个新的.NET解决方案并将其部署为Web应用程序,那么为什么我会特别要求API应用程序?这些是专门针对ASP.NET Web API进行优化的吗?Web Apps用于提供HTML?

7 个答案:

答案 0 :(得分:58)

更新Azure当前状态的答案,

App Services现在将所有Mobile,Api和Web Apps风格替换为单个应用程序框架,其中包含所有功能,以便跨应用程序类型提供更多可访问性。 目前,所有的网络,移动和Api应用程序统称为应用程序服务。我们仍然为客户提供能够在库中创建移动应用程序和Web应用程序,但这基本上可以解析为应用程序服务应用

https://azure.microsoft.com/en-us/documentation/articles/app-service-api-apps-why-best-platform/

Web App的移动工作功能,例如Easy Tables和Easy API。 API Cors和API定义等API应用程序的功能现在也适用于Web应用程序。客户可以托管单个Web应用程序,作为任何移动服务或具有通过应用程序服务提供的所有功能的API。

我们还在预览中提供了一项新服务,特别是针对API应用,通过为您的API提供管理体验,基本上您可以控制生成尝试API页面,收集执行分析,节流等等。查看功能博客,了解有关Azure API管理功能的更多信息。是的,您可以将API作为App Service App托管,并与API Management挂钩。

https://azure.microsoft.com/en-us/documentation/articles/api-management-get-started/

答案 1 :(得分:55)

有一个时间点,不同的应用服务类型之间存在差异,但现在已不再适用。 documentation现在声明:

  

三种应用类型(API,网络,移动设备)之间的唯一区别是Azure门户网站中用于它们的名称和图标。

因此,您选择部署哪种应用服务类型不再重要(除非您关心图标的外观)。

<强>更新

功能应用程序现在是个例外。创建功能应用程序会更改门户中的用户界面。然而,底层的Web应用程序也不例外。设置名为FUNCTIONS_EXTENSION_VERSION = ~1的应用设置会将任何Web应用变为功能应用(减去门户中的用户界面)。

答案 2 :(得分:10)

Web API和API应用程序之间存在许多细微差别,但非常显着且关键的差异是

  1. Native Swagger实现 - 在Visual Studio中创建API App时,默认情况下会出现swagger引用。 Swagger为API使用者提供了非常开发人员友好的功能,可以通过Swagger UI与您的API进行交互。此外,基于Swagger的API提供客户端SDK生成(基于.Net的客户端和基于Javascript的客户端),这使得调用API就像常规方法调用一样容易。 注意:可以手动在常规Web API上实现Swagger。

  2. 能够将API应用程序发布到Azure Market Place。 Azure Market Place是所有可以免费或收费的API应用程序的公共存储库。

  3. this来自第9频道的15分钟视频提供了关于Api应用的精彩概述。

答案 3 :(得分:1)

这可能取决于您尝试执行的操作,但在创建服务时将使用Web API。 ASP.Net Web API是一个用于构建可由各种客户端使用的HTTP服务的框架。这使您不仅可以为Web应用程序构建它,还可以将其打开以连接到Android应用程序,IOS应用程序,Web应用程序,Windows 8应用程序,WPF应用程序等。

因此,如果您需要Web服务但不需要SOAP,则可以使用Web API。

答案 4 :(得分:1)

补充Greg的回答Here's an even more recent article describing the differences.

总结一下:

&#34; API应用程序的关键功能 - 身份验证,CORS和API元数据 - 已直接进入App Service。通过此更改,可以在Web,Mobile和API应用程序中使用这些功能。实际上,这三者在资源管理器中共享相同的Microsoft.Web / sites资源类型。&#34;

这是另一个重要的注意事项:

&#34;如果您的API已部署为Web应用程序或移动应用程序,则无需重新部署应用程序即可利用新功能。&#34;

答案 5 :(得分:0)

实际上,您可以在Azure WebApp上部署aspnet webapi,在Work Roles上部署自托管。

在WebApp(以前的Azure网站)上,它将部署在IIS上,因此您可以利用IIS功能。

答案 6 :(得分:0)

这里是我的评论:

API应用程序:     用于特定功能。从URL触发该功能。     可用于GET,POST,PUT,DELETE。     可以在BODY(Json)处接收参数。     带有有效状态码(失败,成功)的响应。

Web APP:例如,部署具有多种功能的应用程序          用于创建,更新和删除客户或创建完整ERP的目录。

功能APP:与API应用非常相似,     用于特定功能。从URL触发该功能。     可用于GET,POST,PUT,DELETE。     可以在BODY(Json)处接收参数。     带有有效状态码(失败,成功)的响应。

Comparation table:  Web App vs API app vs Azure Functions.