使用ASP.NET WEB API构建基于REST风格的服务实战系列教程【开篇】

最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tutorial-building-asp-net-web-api-restful-service/。于是打算跟着学一下,把学习过程记录在博客园的同时也分享给大家。

每一篇结束后我都会把代码共享

由于我也是刚开始入门技术能力有限,有问题大家一起讨论下吧

系列导航

一.使用Entity Framework Code First构建数据库模型(一)

二.使用Repository模式构建数据库访问层(二)

三.ASP.NET Web Api入门(三)

四.实现模型工厂,依赖注入以及配置格式(四)

五.在Web Api中实现HTTP的PUT,POST,GET和DELETE方法(五)

六.实现资源间的联系(六)

七.实现资源的分页(七)

八.Web Api中的安全问题(八)

九.版本变化的前奏(九)

十.多种技术实现版本变化(十)

十一.使用ETag兑现资源(十一)

待续。。。。。。

基于REST风格服务的简介

REST表示表述性状态转移,它代表的是运行在HTTP上的一个简单的无状态的架构,每一个唯一URL代表一个资源。在创建RESTful服务时,应遵循四个基本的设计原则:

1.使用HTTP方法(动词),使用统一的方式来获取资源(交互的统一接口),即检索资源使用GET,创建资源使用POST,  更新资源使用PUT / PATCH,删除资源使用DELETE。

2.与资源的交互是无状态的, 因此由客户端发起的每个请求应当包括HTTP请求的所有参数,上下文信息和所需服务器返回数据数据类型等。

3.资源标识应通过URI来定义,简单来说应该是只使用URI来完成服务器与客户端和资源之间的交互。这些URI可以看作一个RESTful服务提供的接口。

4.支持JSON或/和XML等多种格式作为数据传输格式。

关于RESTful服务的更多信息,你可以参考:http://www.cnblogs.com/light169/archive/2007/12/31/1021814.html

ASP.NET Web Api简介

ASP.NET WEb Api首次出现是在ASP.NET MVC4的时候,到目前为止已经有一年半的历史了(对我来说还是新知识o(╯□╰)o)。它用于建立一个HTTP服务可以被各种客户端(例如:浏览器,智能手机终端,桌面客户端等)来调用的框架。它并不是ASP.NET MVC框架的一部分,它作为ASP.NET平台的一部分可以用于MVC,Web Form或者是作为一个独立的服务存在。

时至今日,随着智能手机的飞速发展和普及,单页的应用程序猛增的趋势。使用一个轻量级的Web Api来把你的服务暴露给客户端就显得极其重要。ASP.NET Web Api 将使用很多HTTP的特征(URIs,请求/相应的处理模型,标题部分,版本控制以及各种传输数据的格式)带你一起走进基于REST风格服务的精彩世界。

本次系列简介

我们秉持简单,易于理解的原则,同时覆盖了ASP.NET Web Api很多不同的特性来构建我们的项目:

我们将创建一个培训系统,这个系统对外提供一些简单的API,该API允许学生报名参加不同的课程,让老师查看登记在每个课程的学生,在课程和学生之间实现CRUD以及更多的操作。在下一章我会把具体的用到数据库模型展示给大家。

本次系列将会涉及一下的一些知识:

1.采用不同的路由配置,控制器,资源间的关联,格式的响应,和过滤器

2.使用NInject实现依赖注入

3.应用不同的格式响应分页结果

4.在多个资源实现复杂的CRUD操作

5.使用SSL确保安全性

6.使用不同的技术实现API的版本(URL的版本 :查询字符串,版本头部,接受头部)

7.实现资源利用

备注:在本次系列中,我们不构建客户端应用程序,我们将使用Fiddler or Postman 来发送HTTP请求

ASP.NET WEB API构建基于REST风格的更多相关文章

  1. ASP.NET Web Api构建基于REST风格的服务实战系列教程

    使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[十]——使用CacheCow和ETag缓存资源 系列导航地址http://www.cnblogs.com/fzrain/p/3 ...

  2. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】

    最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...

  3. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【九】——API变了,客户端怎么办?

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 一旦我们将API发布之后,消费者就会开始使用并和其他的一些数据混在一起.然而,当新的需求出现 ...

  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这一篇文章我们主要来探讨一下Web Api的安全性,到目前为止所有的请求都是走的Http协议 ...

  5. [转]使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性

    本文转自:http://www.cnblogs.com/fzrain/p/3552423.html 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html ...

  6. 使用ASP.NET WEB API构建基于REST风格的服务实战系列教程(一)——使用EF6构建数据库及模型

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 使用Entity Framework Code First模式构建数据库对象 已经决定使用EF C ...

  7. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【二】——使用Repository模式构建数据库访问层

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在数据访问层应用Repository模式来隔离对领域对象的细节操作是很有意义的.它位于映射层 ...

  8. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 经过前2节的介绍,我们已经把数据访问层搭建好了,从本章开始就是Web Api部分了.在正式开 ...

  9. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【四】——实现模型工厂,依赖注入以及格式配置

    系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在上一篇中,我们已经初步开始使用Web Api了,但同时出现了一些很多不足之处,本章我们就着 ...

随机推荐

  1. KMP算法之从next[]到nextVal[] (转)

    前些日子写了一篇KMP算法的博文,浅谈数据结构之KMP(串中的模式匹配算法),在这片文章中,谈到了一个模式串K值的记录数组 next[],详细可看那篇文章,其实,前面定义的next[]数组是有一定缺陷 ...

  2. DropDownListFor使用ViewData进行绑定的示例

    特别注意,经实践: 此方法的ViewBag的名称必须和new SelectList()中的最后一个参数,即下拉框的默认值的名称必须相同,如: ViewBag.Title = WebConst.UnSe ...

  3. 使用Maven管理Spring[转]

    原文链接: Spring with Maven 原文日期: 2013年04月17日 翻译日期: 2014年06月29日 翻译人员: 铁锚 翻译原文连接:http://blog.csdn.net/ren ...

  4. jquery跨域请求解决方案(我们寻找,我还没有添加验证)

    http://www.3lian.com/edu/2014/02-10/127921.html 本篇文章仅仅要是对jquery ajax跨域解决方法(json方式)进行了介绍,须要的朋友能够过来參考下 ...

  5. android--解--它们的定义tabhost(动态添加的选项+用自己的主动性横向滑动标签+手势切换标签页和内容特征)

    在本文中,解决他们自己的定义tabhost实现,并通过代码集成动态加入标签功能.自己主动标签横向滑动功能.和手势标签按功能之间切换. 我完成了这个完美的解决方案一起以下: 1.定义tabwidget布 ...

  6. Swift语言指南(六)--可选值

    原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...

  7. NHibernate构建一个ASP.NET MVC应用程序

    NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...

  8. 七牛云存储C#例用小例子 C#笔记

    最近有需求要把网站的图片传到云存储上去.于是就找到了七牛.看上面的SDK...看了才发现里面注释很少.当时看的头大.在网上搜一下,基本上没有好的例子.给初学者带来很大的不便!不过最后还是做出来了.在这 ...

  9. 超酷的jQuery百叶窗图片滑块实现教程

    原文:超酷的jQuery百叶窗图片滑块实现教程 今天我们要来分享一款基于jQuery的百叶窗焦点图插件,也可以说是图片滑块插件.这种jQuery焦点图插件的应用非常广泛,在早些年前,我们需要用flas ...

  10. 错 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory

    为linux平台搭建android开发环境的人,您可能会遇到问题,如下面有: 64位置linux安装64位置eclipse和64位置jdk开场后eclipse错误后 ""Canno ...