索引:

目录索引

一.创建一个空项目

  请查看 新建 .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!的更多相关文章

  1. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  2. 初探.NET CORE WEB API(RESTful风格)

    前面有4篇系列博客 (一)Asp.net web api中的坑-[找不到与请求 URI匹配的 HTTP 资源] (二)Asp.net web api中的坑-[http get请求中的参数] (三)As ...

  3. 在ASP.NET Core Web API 项目里无法访问(wwwroot)下的文件

    解决办法:在“ Startup.cs ” 文件里的 Configur方法里添加一句代码“ app.UseStaticFiles() ”,这样就可以访问wwwroot下的文件了. - 方法代码是: - ...

  4. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  5. 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& ...

  6. ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现

    很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...

  7. [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了

    [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/ ...

  8. 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 重点: 实现多级子目录的压缩, ...

  9. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

随机推荐

  1. Bootstrap~学习笔记索引

    回到占占推荐博客索引 bootstrap已经用了有段时间了,感觉在使用上还是比较容易接受的,在开发人员用起来上,也还好,不用考虑它的兼容性,手机,平台,PC都可以有效的兼容. bootstrap官方a ...

  2. iOS-证书申请

    本文讲述发布证书的申请 首先登陆https://developer.apple.com(99美元账号) a.点击页面右上角 b.进入 c.选择证书类型 distribution,选择添加 d.点击+后 ...

  3. Python 学习之路 (前言)

    为什么要学Python  1,脚本语言本身很方便简洁,未来会有趋势 2,web 方向 3,运维方向 我是学静态语言出身的,java,毕业后从事android 应用开发,曾在工作期间学习过linux,想 ...

  4. Conditional Split component 用法

    Conditional Split 用于将数据流按照条件进行拆分,每一个output 都有name和condition. 数据流逐行按照condition进行match,如果match,那么改行会进入 ...

  5. SQL Server DDL触发器运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) DDL运用场景(DDL Scene) ...

  6. LINQ系列:Linq to Object集合操作符

    集合操作符对元素的集合或序列集合进行操作,并返回一个集合.LINQ共有4种集合查询操作符:Distinct.Union.Intersect和Except. 1. Distinct Distinct操作 ...

  7. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  8. 在 ML2 中配置 Vlan Network- 每天5分钟玩转 OpenStack(93)

    上一节我们学习了 Neutron Vlan Network 的原理,今天讨论如何在 ML2 配置中 enable 它. 首先在 /etc/neutron/plugins/ml2/ml2_conf.in ...

  9. 窥探Swift之字符串(String)

    之前总结过Objective-C中的字符串<Objective-C精选字符串处理方法>,学习一门新语言怎么能少的了字符串呢.Swift中的String和Objective-C语言中NSSt ...

  10. (十八)WebGIS中清空功能和地图定位功能的设计以及实现

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 当地图中增加了很多元素后,对不同的元素需要进行一定的控制,最 ...