新建 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应用程序进行调试.在 ...
随机推荐
- js中的DOM事件与对象
概念图 document.getElementById("bb"); 根据id找到bb,只能找一个哦 var aa = document.getElementById(" ...
- angular-ui分页组件
http://angular-ui.github.io/bootstrap/#/pagination 分页组件只提供生成分页按钮,数据的显示需要使用ng-repeat, 注意设置 items-per- ...
- ThinkPHP3.2设置404跳转页面
在ThinkPHP3.2版本中当我们访问不存在的页面时会出现非常不友好错误提示页面,类如下图: 解决办法: 1.在ThinkPHP3.2详细的介绍了该框架下的ThinkPHP惯例配置文件convent ...
- jQuery 2.0.3 源码分析Sizzle引擎 - 高效查询
为什么Sizzle很高效? 首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理 HTML文档一共有这么四个API: getElementById 上下文只能是HTML文档 浏览器支持情况:I ...
- ELF文件
ELF文件格式是一个开发标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型: 可重定位的目标文件 可执行文件 共享库 现在分析一下上一篇文章中经过汇编之后生成的目标文件max.o和 ...
- Segmentation fault (core dumped)
问题: 在Linux中实现快速排序时,没有加入终止条件,结果出现Segmentation fault (core dumped)这个问题,Segmentation fault (core dumped ...
- 一张图理解prototype、proto和constructor的三角关系
× 目录 [1]图示 [2]概念 [3]说明[4]总结 前面的话 javascript里的关系又多又乱.作用域链是一种单向的链式关系,还算简单清晰:this机制的调用关系,稍微有些复杂:而关于原型,则 ...
- ASP.NET MVC之如何看待内置配置来提高性能优化(四)
前言 前几篇我们比较基础的讲了下MVC中的知识,这一节我们穿插点知识,讲讲MVC中我们可以提高性能的办法. Razor视图引擎优化(优化一) 我们知道默认情况下配置MVC去解析一个视图会首先约定通过查 ...
- MUI APP防止登陆页面出现白屏
最近在用MUI开发APP,总体效果,在IOS上,是完美的,但是在低端的Android手机上,就会出现性能问题,我个人觉得最严重的是,就是首页,就是APP打开的第一个页面,在iOS上,由于性能高,所以, ...
- iOS开发之微信聊天页面实现
在上篇博客(iOS开发之微信聊天工具栏的封装)中对微信聊天页面下方的工具栏进行了封装,本篇博客中就使用之前封装的工具栏来进行聊天页面的编写.在聊天页面中主要用到了TableView的知识,还有如何在俩 ...