Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口

开发环境

Visual Studio 2019
.net core 3.0

打开vs2019新建项目

具体步骤如下图:


Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第1张图片
第一步创建新项目

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第2张图片
第二步选择ASP.NET Core Web应用程序然后下一步

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第3张图片
第三步配置新项目然后点创建

此处我们选择API(新手不推荐选择空项目,选择API系统会为我们自动创建WebApi需要的一些配置文件等),Https配置这一项我们暂时不勾选,目前我们不配置Https。


Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第4张图片
第四步创建新的ASP.Net Core Web 应用程序

点创建以后的界面如下图:
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第5张图片
XXX webapi

运行项目

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


天气预报webapi示例

Startup.cs说明

注意:services.AddControllers();endpoints.MapControllers(); 方法成对出现, 这是.net core3.0中的最新写法

ConfigureServices方法
用来向容器中注册服务,注册好的服务可以在其他地方进行调用.

Configure方法
用来配置中间件管道,即如何响应http请求.


Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第6张图片

创建第一个Controller

1 右键删除系统默认创建的WeatherForecastController.csWeatherForecast.cs
2 新建一个控制器,命名:UserController.cs

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第7张图片
新建UserController 01

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第8张图片
新建UserController 02

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第9张图片
新建UserController 03

新建以后如下图:
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第10张图片
UserController

注:我们打开项目依赖项,可以看到系统默认给我们增加了 EntiyFrameworkCore的引用,由此就可以看出微软也在大力推广EF的使用了。
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第11张图片
image.png

回归正题,我们在 UserController中增加一个 Loginget方式的接口方法,返回一个 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");
        }
    }
}

问题来了,为啥直接给打开weatherforecast,而且还404了,别急,往下看。

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第12张图片
404了

在项目 Properties中打开 launchsettings.json
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第13张图片
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?别急继续往下看

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第14张图片
依然404

因为我们是要通过 api/User/Login来得到这个 hello,所以我们要在 UserController里定义一个 action的动作,这样才能通过 api/User/Login来得到这个 hello,如下图新增 action
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第15张图片

F5运行结果如下:
Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第16张图片
运行结果

增加全局路由

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

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第17张图片
1

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

Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口_第18张图片
配置路由

感觉每次还是删除两段代码还是有点麻烦,虽然麻烦,但是用全局路由可以方便后期更改,万一老板不想通过api/xxx/xxx的方式来访问接口,想通过api2/xxx/xxx的方式访问,此时你只需要修改下 Startup.cs即可。

今天就到这里,后期继续完善我们的webapi。

项目源码地址

https://github.com/xiaxiaoqian/NetCore3.0-WebApi

你可能感兴趣的:(Asp.netCore3.0 WebApi从0到1手摸手教你写【1】简单的webapi接口)