使用Azure PaaS托管Web应用与服务

在现代Web应用的开发中,Azure平台即服务(PaaS)提供了一个强大的托管环境,不仅能够执行应用逻辑,还提供了一整套健壮的机制来管理Web应用的生命周期。这些关键特性对于通过Azure云创建现代Web应用至关重要。

设计基于Web应用的软件架构

在设计基于Web应用的软件架构时,需要实现一个API层,以便架构中的各个层能够相互通信。无论应用架构如何,这都是一个实现RESTful API的好机会,并且可以为API的使用提供相应的文档。

创建和实现API应用

在Azure App Service中创建RESTful API应用有多种方法,最常见的是通过Azure门户或直接从Visual Studio进行。以下是一个使用Visual Studio 2019的示例:

  1. 运行Visual Studio 2019,选择“文件” > “新建” > “项目”。
  2. 在“新建项目”对话框中,选择“云”类别下的“ASP.NET Web应用程序(.NET Framework)”,然后点击“下一步”。
  3. 在“新建项目配置”对话框中,输入项目名称,选择磁盘上的物理位置,选择要使用的.NET Framework类型,然后点击“创建”。
  4. 在“新建项目配置”对话框中,选择“Web API”模板,然后点击“创建”。

这样,Visual Studio就会创建一个新的Web API项目,并在解决方案资源管理器的文件树中生成以下文件结构:

使用Swashbuckle生成自动API文档

Swashbuckle是一个非常流行的开源框架,由一系列工具组成,用于设计、构建、文档化和消费RESTful API。它是创建API文档的理想选择,NuGet包非常详细地记录了文档,可以通过访问文章末尾的GitHub项目来查看更多详细信息。

Swashbuckle通过一组NuGet包提供:Swashbuckle和Swashbuckle Core。按照以下步骤将Swashbuckle添加到API项目中:

  1. 使用以下命令从NuGet包控制台安装NuGet包,其中包括在安装时作为依赖项的Swashbuckle.Core:
Install-Package Swashbuckle

NuGet包还安装了一个初始引导文件或引导程序(App_Start / SwaggerConfig.cs),它使用WebActivatorEx在启动API应用程序时启用Swagger路径。还可以通过修改SwaggerConfig.cs文件中的GlobalConfiguration.Configuration.EnableSwagger扩展方法来配置Swashbuckle选项。还可以排除已用过时装饰标记的API操作,添加以下配置:

public class SwaggerConfig { public static void Register() { var thisAssembly = typeof(SwaggerConfig).Assembly; GlobalConfiguration.Configuration.EnableSwagger(c => { ... ... // 设置此标志以省略已用Obsolete属性装饰的任何类型属性的模式属性描述 c.IgnoreObsoleteProperties(); ... ... }); } }

修改API项目中的控制器操作,以包含swagger属性,以帮助生成器构建swagger元数据。

现在,Swashbuckle已配置为使用简单的用户界面为API端点生成Swagger元数据,可以通过在Web浏览器地址栏中输入Swagger来查看列出的metadata.controller生成的UI。

AzureApp Service上发布RESTful API

到目前为止,已经设计了一个API,它具有与项目其他层连接的基本功能,还生成了一个自动文档,充分利用了所有通过其控制器操作定义的API的元数据和定义。已经准备好了上述内容,需要完成从Visual Studio到Azure App Service的发布,以在云中部署API项目。

  1. 在Visual Studio解决方案资源管理器中右键单击项目,然后点击“发布”。
  2. 在发布对话框中,选择左上角的“App Service”,然后点击“创建新”,然后点击发布以转到Azure App Service设置。
  3. 窗口将更改,将被发送到一个更具体的配置,首先必须写入要在Azure App Services中部署的应用程序的名称,然后选择与在Azure门户中关联的订阅。
  4. 接下来,必须指定一个Azure云中的资源组,将Web API应用程序分配为Azure App Service资源。
  5. 如果没有任何资源或想要创建一个新资源,点击要创建的新资源组名称。
  6. 这个资源组通常分配了一个通过可伸缩托管计划计算的支出容量,具有更多或更少的功能,如API执行所需的RAM使用量或处理器数量,默认情况下选择S1(1个核心,1.75 GB RAM),在这种情况下,将API可伸缩性降低以进行测试,并选择一个免费成本计划,这是共享的,也是初始测试环境,当已经如果想要扩展应用程序更多或更改为更高质量或生产环境,可以优化它到适当的计划以有效执行API项目。

一旦整个API项目环境在Azure App Service中配置完毕,Visual Studio就会创建一个发布配置文件,以便每次想要运行带有新更改的API部署时,只需运行发布按钮即可。Visual Studio会编译并尝试上传API项目的所有文件到Azure云通过Azure App service,所以现在可以通过互联网访问其API。

当API项目发布完成后,它将在一个新的浏览器窗口中打开,显示初始发布网页。

将导航到Swagger文档通过/Swagger路由查看API文档的详细信息,以及测试已经通过API暴露的REST方法。例如,http://<YOUR-API-APP>.azurewebsites.net/swagger/。

关注点

通过这种方式,已经可以在Azure云通过Azure App Service运行一个结构良好的RESTful应用程序,并自动生成文档。

通过这种方式,可以在Azure云中以更有序、清晰的方式发布API,并为API项目的良好管理维护提供强大的文档支持。

很高兴在评论中看到任何其他示例(真实或仅想法),无论是API文档的良好使用案例,还是Microsoft Azure云支持的软件开发的其他案例。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485