新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World!
索引:
一.创建一个空项目
请查看 新建 .NET Core 项目 -- Hello World! 一节,新建一个项目:
二.添加引用并修改配置为 Web API (.NET Core 已将 MVC/Web API 底层代码及表层编程接口合二为一)
修改 .vscode\launch.json 文件

代码如下:
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (web)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/bin/Debug/netcoreapp1.0/CoreTest.dll",
"args": [],
"cwd": "${workspaceRoot}",
"externalConsole": false,
"stopAtEntry": false,
"internalConsoleOptions": "openOnFirstSessionStart"
}
]
}
launch.json
修改 .vscode\tasks.json 文件

代码如下:
{
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"tasks": [
{
"taskName": "build",
"args": [
"${workspaceRoot}\\project.json"
],
"isBuildCommand": true,
"problemMatcher": "$msCompile"
}
]
}
tasks.json
修改 project.json 项目文件

代码如下:
{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
// 依赖项
"dependencies": {
"Microsoft.AspNetCore.Server.Kestrel":"1.0.0" ,
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"imports": [
"dnxcore50"
]
}
}
}
project.json
添加 Startup.cs 文件

代码如下:
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection; namespace WebApiFrame
{
public class Startup
{
/*
* IServiceCollection 配置应用中可用的服务
*/
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
} /*
* IApplicationBuilder 构建HTTP请求管道
*/
public void Configure(IApplicationBuilder app)
{
app.UseMvc();
}
}
}
Startup.cs
修改 Program.cs 文件

代码如下:
using Microsoft.AspNetCore.Hosting; namespace WebApiFrame
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseStartup<Startup>()
.Build(); host.Run();
}
}
}
Program.cs
三.添加 Hello World API
RESTFul 风格包含四种动词: GET/POST/PUT/DELETE
GET --> 获取
POST --> 更新
PUT --> 新建
DELETE --> 删除
添加 Controllers 文件夹
在此文件下添加 HelloWorldController.cs 文件
代码如下:
using System.Linq;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc; namespace WebApiFrame.Controllers
{
[Route("api/[controller]")]
public class HelloWorldController : Controller
{
[HttpGet("{id}")]
public IActionResult Get(int id)
{
//
var model = new HelloWorldModel().All.FirstOrDefault(it => it.ID == id); //
var data = default(object);
if (model != null)
{
data = model;
}
else
{
data = new { Message = "没有数据!" };
} //
return Json(data);
} [HttpPost]
public IActionResult Post([FromBody] HelloWorldModel model)
{
return Json(new
{
Message = "更新成功!"
});
} [HttpPut]
public IActionResult Put([FromBody] HelloWorldModel model)
{
return Json(new
{
Message = "新建成功!"
});
} [HttpDelete("{id}")]
public IActionResult Delete(int id)
{
return Json(new
{
Message = id + ":删除成功!"
});
}
} public class HelloWorldModel
{
public int ID { get; set; }
public string PropA { get; set; }
public string PropB { get; set; } private static List<HelloWorldModel> _All = new List<HelloWorldModel>
{
new HelloWorldModel{ID=,PropA="1PA",PropB="1PB"},
new HelloWorldModel{ID=,PropA="2PA",PropB="2PB"},
new HelloWorldModel{ID=,PropA="3PA",PropB="3PB"}
};
public List<HelloWorldModel> All // 仅测试用,生产中这样写是有各种问题的,具体什么问题自己分析~~
{
get
{
return _All;
}
set
{
_All = value;
}
}
}
}
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 周四
新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World!的更多相关文章
- ASP.NET Core Web API 开发-RESTful API实现
ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...
- 初探.NET CORE WEB API(RESTful风格)
前面有4篇系列博客 (一)Asp.net web api中的坑-[找不到与请求 URI匹配的 HTTP 资源] (二)Asp.net web api中的坑-[http get请求中的参数] (三)As ...
- 在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件
解决办法:在“ Startup.cs ” 文件里的 Configur方法里添加一句代码“ app.UseStaticFiles() ”,这样就可以访问wwwroot下的文件了. - 方法代码是: - ...
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
List多个字段标识过滤 class Program{ public static void Main(string[] args) { List<T> list = new List& ...
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...
- [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...
- Docker容器环境下ASP.NET Core Web API应用程序的调试
本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...
随机推荐
- DB的IO统计
对数据的IO操作,都是写入到数据库文件中,sys.dm_io_virtual_file_stats Returns I/O statistics for data and log files. sys ...
- Go 作用
Go语句的作用是表示一个batch(多条Tsql命令)的结束,并向sql server 提交batch,由于局部变量的作用域是基于batch的,所以,go语句限制局部变量的作用域在一个batch中. ...
- WPF根据Oracle数据库的表,生成CS文件小工具
开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...
- Don't let self-built concept imprison yourself
If Self-inferiority is disease, but self-confidence is hazard. Leo moon personalities can be extreme ...
- 窥探Swift编程之在Playground上尽情的玩耍
自从苹果公司发布Swift的时候,Xcode上又多了一样新的东西---"Playground".Playground就像操场一样,可以供我们在代码的世界里尽情的玩耍,在本篇博客中就 ...
- Android随笔之——Activity中启动另一应用
最近在写语音交互程序,在语音打开应用这块碰到如何用代码控制应用启动的问题.百度了一下,有两种方案:1.获取应用的包名:2.获取应用的包名.入口类名. 之前对两种方案都进行了尝试,发现方案二中存在一个弊 ...
- YII 的源码分析(三)
前面已经看完了启动一个yii程序所要经过的流程,以及渲染一个页面是怎么完成的.今天要分析的是yii是如何处理用户请求的.也就是控制和动作部分. 还是以helloworld为例演示这一过程.我们在地址栏 ...
- 精彩 .NET 2015
英文原文:Understanding .NET 2015 Understanding 翻译为了解或理解,对于 .NET 来说,2015 年注定会更加精彩,所以标题就用了"精彩"这个 ...
- iOS_常用C语言函数
一.随机数: 1.rand(); 范围: 0-无穷大. 特点: 仅第一次随机,其他次都是和第一次相同.常用于调试. 返回值: long 实例: int ...
- js实现String.Fomat
引言 拼接字符串用习惯了C#的String.Format.今天看别人的代码在js中也封装了一个js的String.Format,用来拼接字符串和DOM. js实现和调用String.Format St ...