你的位置:首页 > ASP.net教程

[ASP.net教程]新建 ASP.NET Core Web API 项目


一.创建一个空项目

  请查看 新建 .NET Core 项目 -- Hello World! 一节,新建一个项目:              

二.添加引用并修改配置为 Web API (.NET Core 已将 MVC/Web API 底层代码及表层编程接口合二为一)

   修改 .vscode\launch.json 文件  

  

  代码如下:  

 1 { 2   "version": "0.2.0", 3   "configurations": [ 4     { 5       "name": ".NET Core Launch (web)",    6       "type": "coreclr", 7       "request": "launch", 8       "preLaunchTask": "build", 9       "program": "${workspaceRoot}/bin/Debug/netcoreapp1.0/CoreTest.dll",10       "args": [],11       "cwd": "${workspaceRoot}",12       "externalConsole": false,13       "stopAtEntry": false,14       "internalConsoleOptions": "openOnFirstSessionStart"15     }16   ]17 }

launch.json

  修改 .vscode\tasks.json 文件

  

  代码如下:

 1 { 2   "version": "0.1.0", 3   "command": "dotnet", 4   "isShellCommand": true, 5   "args": [], 6   "tasks": [ 7     { 8       "taskName": "build", 9       "args": [10         "${workspaceRoot}\\project.json"11       ],12       "isBuildCommand": true,13       "problemMatcher": "$msCompile"14     }15   ]16 }

tasks.json

  修改 project.json 项目文件

  

  代码如下:

 1 { 2  "version": "1.0.0-*", 3  4  "buildOptions": { 5   "debugType": "portable", 6   "emitEntryPoint": true 7  }, 8  9  // 依赖项10  "dependencies": {11   "Microsoft.AspNetCore.Server.Kestrel":"1.0.0" , 12   "Microsoft.AspNetCore.Mvc": "1.0.0"13  },14 15  "frameworks": {16   "netcoreapp1.0": {17    "dependencies": {18     "Microsoft.NETCore.App": {  19      "type": "platform", 20      "version": "1.0.0"21     }22    },23    "imports": [ 24     "dnxcore50" 25    ]26   }27  }28 }

project.json

  添加 Startup.cs 文件

  

  代码如下:

 1 using Microsoft.AspNetCore.Builder; 2 using Microsoft.Extensions.DependencyInjection; 3  4 namespace WebApiFrame 5 { 6   public class Startup 7   { 8     /* 9      * IServiceCollection 配置应用中可用的服务10     */11     public void ConfigureServices(IServiceCollection services)12     {13       services.AddMvc(); 14     }15 16     /*17      * IApplicationBuilder 构建HTTP请求管道18     */19     public void Configure(IApplicationBuilder app)20     {21       app.UseMvc(); 22     }23   }24 }

Startup.cs

  修改 Program.cs 文件

  

   代码如下:

 1 using Microsoft.AspNetCore.Hosting; 2  3 namespace WebApiFrame 4 { 5   public class Program 6   { 7     public static void Main(string[] args) 8     { 9       var host = new WebHostBuilder()10         .UseKestrel()11         .UseStartup<Startup>()12         .Build();13 14       host.Run();15     }16   }17 }

Program.cs

三.添加 Hello World API

  RESTFul 风格包含四种动词: GET/POST/PUT/DELETE

  GET --> 获取

  POST --> 更新

  PUT --> 新建

  DELETE --> 删除

  添加 Controllers 文件夹

  在此文件下添加 HelloWorldController.cs 文件

  代码如下:

 1 using System.Linq; 2 using System.Collections.Generic; 3 using Microsoft.AspNetCore.Mvc; 4  5 namespace WebApiFrame.Controllers 6 { 7   [Route("api/[controller]")] 8   public class HelloWorldController : Controller 9   {10     [HttpGet("{id}")]11     public IActionResult Get(int id)12     {13       //14       var model = new HelloWorldModel().All.FirstOrDefault(it => it.ID == id);15 16       //17       var data = default(object);18       if (model != null)19       {20         data = model;21       }22       else23       {24         data = new { Message = "没有数据!" };25       }26 27       //28       return Json(data);29     }30 31     [HttpPost]32     public IActionResult Post([FromBody] HelloWorldModel model)33     {34       return Json(new35       {36         Message = "更新成功!"37       });38     }39 40     [HttpPut]41     public IActionResult Put([FromBody] HelloWorldModel model)42     {43       return Json(new44       {45         Message = "新建成功!"46       });47     }48 49     [HttpDelete("{id}")]50     public IActionResult Delete(int id)51     {52       return Json(new53       {54         Message = id + ":删除成功!"55       });56     }57   }58 59   public class HelloWorldModel60   {61     public int ID { get; set; }62     public string PropA { get; set; }63     public string PropB { get; set; }64 65     private static List<HelloWorldModel> _All = new List<HelloWorldModel>66     {67       new HelloWorldModel{ID=1,PropA="1PA",PropB="1PB"},68       new HelloWorldModel{ID=2,PropA="2PA",PropB="2PB"},69       new HelloWorldModel{ID=3,PropA="3PA",PropB="3PB"}70     };71     public List<HelloWorldModel> All // 仅测试用,生产中这样写是有各种问题的,具体什么问题自己分析~~72     {73       get74       {75         return _All;76       }77       set78       {79         _All = value;80       }81     }82   }83 }

HelloWorldController.cs

四.使用 Visual Studio Code 运行

    参照 新建 ASP.NET Core MVC 项目 -- Hello World! 调试运行,

  使用 HTTP Post man 进行数据请求调试

  GET : http://localhost:5000/api/HelloWorld/1  如图:

  

  F5 调试通过,如图:

  

  POST :  http://localhost:5000/api/HelloWorld/

  Content : 见下图

  

  F5 调试通过,如图:

  

  PUT:  http://localhost:5000/api/HelloWorld/

  Content : 见下图

  

   F5 调试通过,如图:

  

   DELETE : http://localhost:5000/api/HelloWorld/1

   

  F5 调试通过,如图:

  

 

 

                                         蒙

                                    2016-09-22  11:58  周四

 

 

 

             支付宝打赏:                                    微信打赏: