ASP.NET Core Web API 教程Project Configuration

前言:

本系列文章主要参考了《Ultimate ASP.NET Core 3 Web API》一书,对原文进行了翻译,同时适当删减、修改了一部分内容。

对于某些概念和原理,原书和本文中都没有进行详细描述,如果一一详细介绍,内容就显得臃肿且混乱,我个人是先对原书进行了通读,理解主要内容,然后再具体搜索了解其中不明白或者感兴趣的概念和知识点。

由于我的技术水平和英文水平都有限,且主要是为了方便以后自己查看回顾,所以有错误之处,还请各位批评指正。

 项目配置

本篇内容简介: Configuration 在开发过程中至关重要,我们首先需要了解如何配置我们的应用程序。在之前的 .NET Framework 项目中,我们一般是通过 web.config 文件来完成对应用程序的配置,而在 .NET Core 中,我们不再使用该文件,而是使用 .NET Core 内置的 Configuration 框架。本文将介绍 Startup 类中的配置方法以及如何通过这些方法来设置应用程序。除此之外,还将介绍如何注册服务以及如何通过扩展方法来实现注册。

1. 创建新项目

打开 Visual Studio 2019,点击 Create a new project ,然后选择 ASP.NET Core Web API

ASP.NET Core Web API 教程Project Configuration

填写项目名称并选择项目路径:

ASP.NET Core Web API 教程Project Configuration

然后选择目标框架,并点击 Create :

ASP.NET Core Web API 教程Project Configuration

2. launchSettings.json 文件

项目创建成功后,在解决方案的 Properties 节点下可以看到 launchSettings.json 文件:

ASP.NET Core Web API 教程Project Configuration

这个文件决定了 ASP.NET Core 应用程序的启动行为,可以看到,它包含了 IIS 和自托管应用( self-hosted ) Kestrel 的启动设置的相关配置。

{ "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:59126", "sslPort": 44389 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "weatherforecast", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "CompanyEmployees": { "commandName": "Project", "launchBrowser": true, "launchUrl": "weatherforecast", "applicationUrl": "https://localhost:5001;:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }

由于我们开发的是 Web API 项目,因此我们并不需要使用浏览器像查看 Web 项目一样来查看 API,我们之后会通过 Postman (以后会介绍)来调用并查看 API 的输出。而为了阻止应用程序启动时自动打开浏览器,需要将 launchBrowser 属性值设置为 false :

"launchBrowser": false

在创建项目时,如果勾选了 Configure for HTTPS 的复选框,那么在 applicationUrl 节点中就会有两个 URL,一个用于 HTTP,另一个用于 HTTPS。

注意:此 HTTPS 配置项尽在本地环境中有效,当应用程序正式部署后,必需配置真实有效的证书。

在本地开发应用程序时,还有一个很重要的属性: launchUrl ,该属性定义了应用程序启动时默认导航到的 URL。如果要让该属性生效,就需要将 launchBrowser 属性值设置为 true 。

3. Program.cs 和 Startup.cs

ASP.NET Core 应用程序本质是一个控制台应用程序,它通过创建 web 服务器来托管应用程序并监听传入的HTTP请求,然后返回响应,所以程序的入口还是 Program 类的 Main() 方法,ASP.NET Core Web API 应用程序中的 Program 如下:

public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }

关于 Host 的启动过程,可以参考:以后补充。

CreateDefaultBuilder(args) 方法设置项目的默认配置文件和变量,以及日志提供程序。在应用启动过程的早期配置好日志提供程序意味着可以使用日志记录发生在启动过程中的问题。

之后,调用 webBuilder.UseStartup<Startup>() 方法来初始化 Startup 类, Startup 类在 ASP.NET Core Web API 项目中是强制要求的类,需要在该类中配置应用程序需要的嵌入式或者自定义的服务,代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwpzz.html