随笔分类 -  ASP.NET Web API

ASP.NET Web API
摘要:本篇体验ASP.NET Web API的安全管道。这里的安全管道是指在请求和响应过程中所经历的各个组件或进程,比如有IIS,HttpModule,OWIN,WebAPI,等等。在这个管道中大致分两个阶段,一个是验证阶段,另一个是授权阶段。在ASP.NET Web API v1版本的时候,安全管道大致 阅读全文
posted @ 2016-03-17 23:49 Darren Ji 阅读(2121) 评论(0) 推荐(2) 编辑
摘要:ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型。HttpResponseMessage Put(int id, Product item)id是int类型,是简单类型,item是Product类型,是复杂类型。简单类型实参值从哪里读取呢?--一般从URI中读取所谓的 阅读全文
posted @ 2016-02-28 00:44 Darren Ji 阅读(2711) 评论(2) 推荐(1) 编辑
摘要:ASP.NET Web API的模型验证与ASP.NET MVC一样,都使用System.ComponentModel.DataAnnotations。具体来说,比如有:[Required(ErrorMessage="")][Range(0, 999)][Bind(Exclude="")][Disp 阅读全文
posted @ 2016-02-27 22:42 Darren Ji 阅读(1944) 评论(0) 推荐(2) 编辑
该文被密码保护。
posted @ 2016-02-18 20:24 Darren Ji 阅读(3) 评论(0) 推荐(0) 编辑
摘要:RAML是Restful API Modeling Language的缩写,是用来描述API信息的文档。 创建一个.raml后缀的文件,用Atom打开。 基本用法 #%RAML 0.8 title: Book API baseUri: http://api.book.com/{version} ve 阅读全文
posted @ 2016-02-18 16:12 Darren Ji 阅读(8709) 评论(1) 推荐(1) 编辑
摘要:如何查看查询字符串?→输入包含查询字符串的URL,比如:http://localhost:54176/api/ProductCategories?name=darren&age=25→点击Params,查询字符串以键值队集合的形式存储→选中键值对,右键选择"EncodeURIComponent"可以 阅读全文
posted @ 2016-02-17 13:28 Darren Ji 阅读(2583) 评论(0) 推荐(0) 编辑
摘要:本篇体验使用AngularJS向后端ASP.NET API控制器上传文件。 首先服务端: public class FilesController : ApiController { //using System.Web.Http [HttpPost] public async Task<HttpR 阅读全文
posted @ 2016-02-03 13:16 Darren Ji 阅读(2108) 评论(0) 推荐(0) 编辑
摘要:在ASP.NET Web API中实现缓存大致有2种思路。一种是通过ETag, 一种是通过类似ASP.NET MVC中的OutputCache。通过ETag实现缓存首先安装cachecow.serverinstall-package cachecow.server在WebApiConfig中。pub... 阅读全文
posted @ 2016-01-22 09:37 Darren Ji 阅读(3843) 评论(0) 推荐(1) 编辑
摘要:有时候我们可能不想显示某个实体中的所有字段。比如客户端发出如下请求:locaohost:43321/api/groups/1/items?fields=idlocaohost:43321/api/groups/1/items?fields=id,name以上,对于Item这个类,我们可能只想显示id... 阅读全文
posted @ 2016-01-22 09:06 Darren Ji 阅读(1002) 评论(0) 推荐(0) 编辑
摘要:谈到ASP.NET Web API的分页,考虑的因素包括:1、上一页和下一页的uri2、总数和总页数3、当前页和页容量接着是服务端的数据以怎样的形式返回?我们通常这样写:{ totalCount:10, result: [ {id:1, name:"a"}, {id:2, name:"b"} ]}以... 阅读全文
posted @ 2016-01-21 16:42 Darren Ji 阅读(1569) 评论(0) 推荐(0) 编辑
摘要:所谓的动态排序是指支持任意字段、任意升序降序的排序。我们希望在客户端按如下格式写:localhost:8000/api/items?sort=titlelocalhost:8000/api/items?sort=name,titlelocalhost:8000/api/items?sort=-nam... 阅读全文
posted @ 2016-01-21 14:58 Darren Ji 阅读(2941) 评论(2) 推荐(0) 编辑
摘要:有时候,向服务端请求一个实体,我们希望返回如下的格式:links: [ href: http://localhost:8901/api/user/diaries/2013-08-17, rel: "self", method: "GET", isTemplated: false],currentDa... 阅读全文
posted @ 2016-01-20 10:02 Darren Ji 阅读(633) 评论(0) 推荐(0) 编辑
摘要:通常情况下Server是无状态的,在ASP.NET Web API中,我们可以让服务端响应体中产生ETag属性,起到缓存的作用。大致实现原理是:1、服务端的响应体中返回一个ETag属性2、客户端通过If-None-Match属性把ETag的属性值传递给服务端3、服务端返回304状态码响应体中返回ET... 阅读全文
posted @ 2016-01-19 23:05 Darren Ji 阅读(3468) 评论(0) 推荐(0) 编辑
摘要:在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了。如何实现API的版本呢?1、通过路由设置版本最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的controller。config.Routes.MapHttpRoute( name: "Food", ... 阅读全文
posted @ 2016-01-18 13:27 Darren Ji 阅读(4826) 评论(0) 推荐(2) 编辑
摘要:本篇涉及ASP.NET Web API中的返回数据合适和依赖注入。获取数据public IEnumerable Get(){ var results = reop.GetAllFoods() .OrderBy(f => f.Description) .Take(25... 阅读全文
posted @ 2016-01-15 09:55 Darren Ji 阅读(2039) 评论(0) 推荐(0) 编辑
摘要:在上一篇中实现了增删改查,本篇实现分页和过滤。本系列包括:1、前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查2、前端使用AngularJS的$resource,后端ASP.NET Web API,实现分页、过滤后端添加分页、排序逻辑首先要在后端API... 阅读全文
posted @ 2015-12-03 16:40 Darren Ji 阅读(2344) 评论(1) 推荐(0) 编辑
摘要:AngularJS中的$resource服务相比$http服务更适合与RESTful服务进行交互。本篇后端使用ASP.NET Web API, 前端使用$resource,实现增删改查。本系列包括:1、前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查2... 阅读全文
posted @ 2015-12-02 22:40 Darren Ji 阅读(2355) 评论(1) 推荐(1) 编辑
摘要:chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解。文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/20... 阅读全文
posted @ 2015-11-12 17:26 Darren Ji 阅读(2394) 评论(0) 推荐(0) 编辑
摘要:chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解。文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/20... 阅读全文
posted @ 2015-11-12 17:11 Darren Ji 阅读(1719) 评论(1) 推荐(0) 编辑
摘要:从OData v4开始增加了对单例模式的支持,我们不用每次根据主键等来获取某个EDM,就像在C#中使用单例模式一样。实现方式大致需要两步:1、在需要实现单例模式的导航属性上加上[Singleton]特性2、在EDM配置的时候使用builder.Singleton("SomeModels")来创建Si... 阅读全文
posted @ 2015-11-10 10:44 Darren Ji 阅读(1672) 评论(0) 推荐(0) 编辑

我的公众号:新语新世界,欢迎关注。