.Net Core(二) 下
接上面 http://www.cnblogs.com/xcodevs/p/5584218.html
在解决方案浏览器中,右击 Controllers 目录。选择添加>新建项。选择Web API控制器。命名为TodoController。点击添加。

将自动生成的代码替换为如下代码:

是不是很面熟?这个就是前面讲过的构造注入。
添加获取to-do项的方法到TodoController类中,代码如下:

在进行调试之前,还需要设置项目的启动Url。右击项目>属性。选择调试选项卡,将启动URL的值设置为api/todo。如图:

然后Ctrl+F5就可以在浏览器中看到结果了,Ctrl+F5可以在程序运行对程序进行修改,然后直接刷新页面就可以看到修改的效果。提示:如果你使用 IE,IE 将会弹出窗口提示要求打开或者保存 todo.json 文件。

GetAll 方法返回 CLR 对象。MVC 自动把对象序列化为 JSON 并把 JSON 对象写入响应消息正文。响应状态码为 200,假设没有未处理异常的情况下。(未处理异常一般会被转化为 5xx 错误。)
如果觉得这样的方式一点也不酷,推荐两款Web API调用工具。Fiddler (http://www.telerik.com/fiddler)和Postman(http://www.getpostman.com/)
Fiddler学习http://www.imooc.com/learn/37
使用Postman调用API
打开Postman,在输入框输入你项目的启动Url,选择请求方式Get,点击Send。得到如下结果:

响应码是200,表示一切正常,返回的是正常请求结果。点击Headers切换到请求面板。可以看到响应头里的相关参数

在上一张用Fiddler 调用的结果图

添加其他的CRUD操作。代码如下:


FromBody告诉 MVC 从 HTTP 请求的正文中获取 todo 项的值。当通过客户端向服务器发出 POST 请求来创建新资源时,CreatedAtRoute 方法将返回标准的 201 响应。
调用Create方法:
在Postman中调用的时候需要设置文本类型为application/json。调用结果:


201响应表示(已创建)请求成功并且服务器创建了新的资源。然后通过CreateAtRoute 还把 Location 头信息加入到了响应。Location 头信息指定新创建的 todo 项的 URI。
调用Update方法:


Update类似Create,但是此处Update使用的是PUT,PUT 请求要求客户端发送整个实体更新,而不仅仅是增量。如果URI不存在,则要求服务器根据请求创建资源,如果存在,服务器就接受请求内容,并修改URI资源的原始版本。响应是 204 (No Content),表示响应执行成功,但没有数据返回,浏览器不用刷新,不用导向新页面。通过调用GetAll,可以看到资源确实被更新了。
调用Delete方法:


Delete方法就是通过http请求删除指定的URL上的资源啦,Delete请求一般会返回3种状态码:
200 (OK) - 删除成功,同时返回已经删除的资源
202 (Accepted) - 删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域)
204 (No Content) - 删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的)
通过调用GetAll,可以看到资源确实被删除了。
.Net Core(二) 下的更多相关文章
- ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
ExpandoObject与DynamicObject的使用 using ImpromptuInterface; using System; using System.Dynamic; names ...
- Docker + .NET Core(二)
原文:Docker + .NET Core(二) 前言: 环境:centos7.5 64 位 正文: 首先我们在宿主机上安装 .NET Core SDK sudo rpm --import https ...
- Bootstrap <基础十二>下拉菜单(Dropdowns)
Bootstrap 下拉菜单.下拉菜单是可切换的,是以列表格式显示链接的上下文菜单.这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现. 如需使用下列菜单,只需要在 ...
- C# 6 与 .NET Core 1.0 高级编程 - 40 ASP.NET Core(下)
译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 40 章 ASP.NET Core(下)),不对的地方欢迎指出与交流. 章节出自<Professiona ...
- .Net Core 环境下构建强大且易用的规则引擎
本文源码: https://github.com/jonechenug/ZHS.Nrules.Sample 1. 引言 1.1 为什么需要规则引擎 在业务的早期时代,也许使用硬编码或者逻辑判断就可以满 ...
- 此文记录了我从研二下学期到研三上学期的找工历程,包括百度、腾讯、网易、移动、电信、华为、中兴、IBM八家企业的面试总结和心得--转
感谢电子通讯工程的研究生学长为大家整理了这么全面的求职总结,希望进入通信公司和互联网公司做非技术类岗位的学弟学妹们千万不要错过哦~ ---------------------------原文分割线-- ...
- .Net Core IIS下无Log4Net日志输出,命令行下却有(dotnet运行)
.Net Core IIS下无Log4Net日志输出,命令行下却有(dotnet运行) 遇到个诡异的问题,项目发布并寄宿到 IIS上后,Log4Net没有日志输出 1.原因分析 这不应该啊,所有的配置 ...
- K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Core DevOps
一.介绍 前一篇,写的K8S部署环境的文章,简单的介绍下DevOps(Development和Operations的组合词),高效交付, 自动化流程,来减少软件开发人员和运维人员的沟通.Martin ...
- 在Core环境下用WebRequest连接上远程的web Api 实现数据的简单CRUD(附Git地址)
本文所有的东西都是在dot Net Core 1.1环境+VS2017保证测试通过. 本文接着上次文章接着写的,不了解上篇文章的可能看着有点吃力.我尽量让大家都能看懂.这是上篇文章的连接http:// ...
随机推荐
- JDK5-8特性归纳
jdk5新特性1.自动装箱和拆箱2.枚举3.静态导入4.可变参数5.內省 是Java语言对Bean类属性.事件的一种缺省处理方法.例如类A中有属性那么,那我们可以通过getName,setName ...
- cuda npp库旋转图片
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h&g ...
- 8.2.3 操作MySQL数据库
Python访问MySQL数据库可以使用MySQLDb模块,该模块主要方法如下: (1)commit():提交事务. (2)rollback():回滚事务. (3)callproc(self,proc ...
- Vue项目搭建及原理四
四.Vue-cli工作原理及Vue实例创建,工作原理 (一)Vue-cli原理 1.webpack其实使用了node.js的express网页服务器来进行处理网页相关的数据,相当于使用一个类似apac ...
- F - Many Moves
F - Many Moves Time limit : 2sec / Memory limit : 256MB Score : 900 points Problem Statement There a ...
- nyoj_38_布线问题_201403121753
布线问题 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院要进行用电线路改造,现在校长要求设计师设计出一种布线方式,该布线方式需要满足以下条件:1.把所有 ...
- N天学习一个linux命令之yum
yum命令 用途 yum(Yellowdog Updater Modified),RedHat系Linux操作系统包管理器,基于rpm,从源远程仓库下载rpm包安装,同时解决依赖关系,使用Python ...
- 关于Openstack的浅层次认知
Openstack浅析 英文好的应该直接跳到官方文档去看相关的介绍,以下是具体介绍的连接,包含Openstack的具体架构: http://docs.openstack.org/kilo/instal ...
- VMware镜像文件下载
VMware镜像文件下载 http://blog.sina.com.cn/s/blog_517c21c00102x5ja.html 貌似Centos 6不能下载啊: 其他的没有测试:
- [Node.js] Add Logging to a Node.js Application using Winston
Winston is a popular logging library for NodeJS which allows you to customise the output, as well as ...