第一節-簡單的webapi接
開發環境
Visual Studio 2019
.net core 3.0
打開vs2019新建項目
具體步驟如下圖:



此處我們選擇API(新手不推薦選擇空項目,選擇API系統會為我們自動創建WebApi需要的一些配置文件等),Https配置這一項我們暫時不勾選,目前我們不配置Https。

點創建以后的界面如下圖:

運行項目
F5運行項目,然后就可以看到微軟為我們寫好的一個天氣預報示例webapi了,這里只有一個Get請求示例,返回值為json格式。

Startup.cs說明
注意:services.AddControllers();
和 endpoints.MapControllers();
方法成對出現, 這是.net core3.0中的最新寫法
ConfigureServices方法
用來向容器中注冊服務,注冊好的服務可以在其他地方進行調用.
Configure方法
用來配置中間件管道,即如何響應http請求.

創建第一個Controller
1 右鍵刪除系統默認創建的WeatherForecastController.cs
和WeatherForecast.cs
2 新建一個控制器,命名:UserController.cs



新建以后如下圖:

注:我們打開項目依賴項,可以看到系統默認給我們增加了EntiyFrameworkCore
的引用,由此就可以看出微軟也在大力推廣EF的使用了。

回歸正題,我們在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"); } } }
問題來了,為啥直接給打開weatherforecast
,而且還404了,別急,往下看。

在項目Properties
中打開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?別急繼續往下看

因為我們是要通過api/User/Login
來得到這個hello
,所以我們要在UserController
里定義一個action
的動作,這樣才能通過api/User/Login
來得到這個hello
,如下圖新增action

F5運行結果如下:

增加全局路由
上面增加action
雖然能達到想要的結果,但是每次新建一個Controller
都有寫個action
萬一要是忘記了又要忙乎半天,有沒有一勞永逸的辦法呢?
繼續往下看:
1.首先去掉Controller里的Route
和ApiController

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

感覺每次還是刪除兩段代碼還是有點麻煩,雖然麻煩,但是用全局路由可以方便后期更改,萬一老板不想通過api/xxx/xxx的方式來訪問接口,想通過api2/xxx/xxx的方式訪問,此時你只需要修改下Startup.cs
即可。
今天就介紹到這里,后續會繼續更新,如需要源代碼的請聯系本人,加微信號:18700482809
詳細教程