標籤:
在上一篇裡,我已經建立了一個簡單的Web-Demo應用程式。這一篇將記錄將此Demo程式改造成一個Web Api應用程式。
一、添加ASP.NET Core MVC包
1. 在project.json檔案添加Microsoft.AspNetCore.Mvc包
1 { 2 "version": "1.0.0-*", 3 "buildOptions": { 4 "debugType": "portable", 5 "emitEntryPoint": true 6 }, 7 "dependencies": { 8 "Microsoft.NETCore.App": { 9 "type": "platform",10 "version": "1.0.0"11 },12 "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",13 "Microsoft.AspNetCore.Mvc": "1.0.0"14 },15 "frameworks": {16 "netcoreapp1.0": {17 "imports": "dnxcore50"18 }19 }20 }
2. 在cmd視窗使用 dotnet restore 將新添加的包還原至本地
二、修改Startup.cs檔案內容,添加Asp.Net Mvc能力
1 using Microsoft.AspNetCore.Builder; 2 using Microsoft.Extensions.DependencyInjection; 3 4 namespace WebApiFrame 5 { 6 public class Startup 7 { 8 public void ConfigureServices(IServiceCollection services) 9 {10 11 // 注入MVC架構12 services.AddMvc();13 }14 15 public void Configure(IApplicationBuilder app)16 {17 // 添加MVC中介軟體18 app.UseMvc();19 }20 }21 }
三、建立Controller,編寫Web Api方法
1. 控制器UsersController
1 using System; 2 using Microsoft.AspNetCore.Mvc; 3 using WebApiFrame.Models; 4 5 namespace WebApiFrame.Controller 6 { 7 8 [Route("api/[controller]")] 9 public class UsersController : Microsoft.AspNetCore.Mvc.Controller10 {11 12 [HttpGet("{id}")]13 public IActionResult Get(int id)14 {15 var user = new User() { Id = id, Name = "Name:" + id, Sex = "Male" };16 return new ObjectResult(user);17 }18 19 [HttpPost]20 public IActionResult Post([FromBody] User user){21 if(user == null){22 return BadRequest();23 }24 25 // TODO:新增操作26 user.Id = new Random().Next(1, 10);27 return CreatedAtAction("Get", new { id = user.Id }, user);28 }29 30 [HttpPut("{id}")]31 public IActionResult Put(int id, [FromBody] User user){32 if(user == null){33 return BadRequest();34 }35 36 // TODO: 更新操作37 return new NoContentResult();38 }39 40 [HttpDelete("{id}")]41 public void Delete(int id){42 // TODO: 刪除操作43 44 }45 }46 }
不同於之前的ASP.NET MVC版本,ASP.NET Core MVC裡實現Web Api的控制器都繼承自唯一的一個基類Controller。
2. 模型User.cs
1 namespace WebApiFrame.Models2 {3 public class User4 {5 public int Id { get; set; }6 public string Name { get; set; }7 public string Sex { get; set; }8 }9 }
最終檔案夾結構如
四、啟動調試,使用Fiddler工具調試Web Api介面
1. GET Request
GET Response
2. POST Request
POST Response
POST響應碼為201,表示資源建立成功。
在回應標頭裡有一個Location屬性,這是一個導覽屬性,屬性值是一個url地址,直接指向了剛剛Post成功的資源地址。
3. PUT Request
PUT Response
PUT為更新操作。按照規範,當服務更新操作執行成功後,直接通過響應碼204告訴用戶端調用成功,預設沒有響應body。
4. DELETE Request
DELETE Response
DELETE為刪除操作。按照規範,需要通過響應碼判斷是否成功(200)還是失敗(500),預設沒有響應body。
使用Visual Studio Code開發Asp.Net Core WebApi學習筆記(二)-- Web Api Demo