开发环境
Visual Studio 2019
.net core 3.0
打开vs2019新建项目
具体步骤如下图:

第一步创建新项目

第二步选择ASP.NET Core Web应用程序然后下一步

第三步配置新项目然后点创建
在这里我们选择系统自带的项目

第四步创建新的ASP.Net Core Web 应用程序
点击创建,如下图:

XXX webapi
运行项目
F5运行项目,然后就可以看到微软为我们写好的一个天气预报示例webapi了,这里只有一个Get请求示例,返回值为json格式。

天气预报webapi示例
Startup.cs说明
注意:services.AddControllers();和 endpoints.MapControllers(); 方法成对出现, 这是.net core3.0中的最新写法
ConfigureServices方法
用来向容器中注册服务,注册好的服务可以在其他地方进行调用.
Configure方法
用来配置中间件管道,即如何响应http请求.

请求体描述
创建第一个Controller
1 右键删除系统默认创建的WeatherForecastController.cs和WeatherForecast.cs
2 新建一个控制器,命名:UserController.cs

新建UserController 01

新建UserController 02

新建UserController 03
新建后:

UserController
注:我们打开项目依赖项,可以看到系统默认给我们增加了EntiyFrameworkCore的引用,由此就可以看出微软也在大力推广EF的使用了。

image.png
回归正题,我们在UserController中增加一个Login的get方式的接口方法,返回一个hello,我们打算通过请求api/User/Login来得到这个hello,F5运行程序
namespace XXX.api.Controllers{ [Route("api/[controller]")] [ApiController] public class UserController : ControllerBase { [HttpGet] public IActionResult Login() { return Ok("hello"); } }}

404了
问题来了,为啥直接给打开weatherforecast,而且还404了,别急,往下看。
在项目Properties中打开launchsettings.json。

launchsettings.json
修改launchsettings.json,我们删掉了关于IIS相关的内容(让webapi不通过IIS来加载),然后修改了lauchUrl属性,如下:
{ "profiles": { "XXX.api": { "commandName": "Project", "launchBrowser": true, "launchUrl": "api/User/Login", "applicationUrl": "http://localhost:5000/", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } }}

依然404
(┬_┬)怎么还是404?别急继续往下看
因为我们是要通过api/User/Login来得到这个hello,所以我们要在UserController里定义一个action的动作,这样才能通过api/User/Login来得到这个hello,如下图新增action

F5运行结果如下:

运行结果
增加全局路由
上面增加action虽然能达到想要的结果,但是每次新建一个Controller都有写个action万一要是忘记了又要忙乎半天,有没有一劳永逸的办法呢?
继续往下看:
1.首先去掉Controller里的Route和ApiController

1
2.修改Startup.cs,增加路由模版:

配置路由