.NET Core Web API理解

1.什麼是WEB API何時該使用它

WEB API 與 MVC的異同javascript

  WEB API和MVC同樣具備一樣的設計模式,路由概念,綁定模型,驗證等。他和傳統的WEB應用程序不一樣的是MVC的視圖部分。它返回JSON或者XML數據,而不是返回HTML,客戶端應用程序使用這些數據控制他們的行爲或者更新UI。html

  傳統的WEB應用程序用戶在瀏覽瀏覽器時,服務器經過HTML返回用戶的請求。通常使用MVC的中間件Razor模板生成HTML。可是現代應用程序的開發人員也有許多其它的可能性來考慮。java

WEB API 使用於哪些實際場景json

  SPAs(Client-side single-page applications)客戶端單頁應用程序在這幾年變得很是流行。好比Angular,React, Ember,這些框架使用在用戶的WEB瀏覽器中運行的 javascript 來生成他們看到的 html,並與之互動。當用戶第一次使用應用程序時,服務器發送初始化的JavaScript代碼給瀏覽器。在從服務器加載任何應用程序數據以前,用戶的瀏覽器加載 javascript 並初始化SPA。
  加載SPA 後, 與服務器的通訊仍經過 http 進行, 但服務器端應用程序不會直接向瀏覽器發送 html 以響應請求, 而是將數據 (一般採用 json 或 xml 等格式) 發送到客戶端應用程序。而後SPA分析數據並生成適當的 html向用戶顯示。
  服務器端應用程序存在終結點,客戶端與終節點通訊時稱爲 WEB API。後端

不一樣客戶端請求服務的方式設計模式

  

WEB API 的優點api

  現代開發者須要考慮許多不一樣的應用程序的消費者。好比出傳統的瀏覽器應用程序,或者SPA,移動應用程序或者其餘應用程序。WEB API 公開了許多可用於訪問的URL或更改服務器上的數據。它一般使用 HTTP 進行訪問。
  使用 WEB API的最大的優點之一是, 它能夠做爲一個通用的爲您的全部應用程序提供後端。例如, 能夠首先構建使用 WEB API 的客戶端應用程序。稍後, 您能夠添加使用相同的 WEB API, 幾乎不須要或根本不須要對ASP .NET Core核心代碼進行修改。
  最後無論是使用.NET Core MVC仍是.NET Core WEB API構建WEB的應用程序,這些最終取決於你的我的喜愛。瀏覽器

2.控制器方法使用

返回原始的.NET對象服務器

代碼片斷以下,返回了.NET的string類型集合:app

[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { // GET api/values
 [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } }

返回結果以下圖:

返回IActionResult做爲一個StatusCodeResult

代碼片斷以下:

[HttpGet("{id}")] public ActionResult<string> Get(int id) { if (id > 0) { return Ok(id); } return NotFound(); }

返回結果以下圖:

成功結果截圖:

失敗結果截圖:

3.請求模型

 請求模型流程

4.配置路由

設置默認啓動控制器

在ASP.NET Core WEB API項目中的launchSettings.json文件中設置,結果以下圖所示:

指定控制器的訪問方式

代碼片斷以下:

[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { [Route("GetAllValues")] [Route("GetTodayValues")] [Route("GetNowValues")] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } }

如下訪問地址均可以訪問到Get方法:

https://localhost:5001/api/values/GetAllValues
https://localhost:5001/api/values/ GetTodayValues
https://localhost:5001/api/values/ GetNowValues

 

以下代碼,方法的默認值就是20:

[Route("GetNew/{speed=20}")] public string GetCurrentValue(int speed) { return speed.ToString(); }

Web API中處理Get和Post請求

Get:獲取請求列表,Post:建立一個新的請求。使用HttpGet和HttpPost特性,代碼片斷以下:

[Route("api/[controller]")] [ApiController] public class AppointmentController : ControllerBase { public IEnumerable<string> Index() { return new string[] { "value1Test", "value2Test" }; } [HttpGet("ListApp")] public IActionResult ListAppointments() { return Ok("Get請求"); } [HttpPost("GetApp")] public IActionResult CreateAppointment() { return Ok("Post請求"); } }
相關文章
相關標籤/搜索