使用Visual Studio Code開發Asp.Net Core WebApi學習筆記(二)-- Web Api Demo


上一篇里,我已經建立了一個簡單的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.Controller
10     {
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.Models
2 {
3     public class User
4     {
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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM