随笔分类 - Web Api
摘要:空气路由,越来越觉着,更能表达设计者的意图
阅读全文
摘要:如果仅仅针对指定的路由进行某些特定的消息处理,而不是应用于所有路由,我们应该怎么做呢?
阅读全文
摘要:对于到多数开发者,都会忽略或者不知道 Action 没有任何 HTTP 的声明属性,Web Api 怎样处理?
对于初学者,还是需要了解 NonActionAttribute
阅读全文
摘要:问题 定义什么样的路由,可以不会受请求参数类型和数量的限制,而被全部捕获? 解决方案 在路由模板中,给参数添加一个“*”前缀,例如 {*param},只要请求的 URL 能够和路由模板其余的部分匹配,这样的请求会被全部捕获。这个不仅适用于集中式路由,也试用于属性路由。 工作原理 如果整个路由模板只是
阅读全文
摘要:ASP.NET Web API 2 Recipes
路由约束
限制路由参数的值
阅读全文
摘要:问题 怎么样创建一个路由,不管客户端传不传这个参数,都可以被成功匹配。 解决方案 ASP.NET WEB API 的集中式路由和属性路由都支持路由声明可选参数。 在用集中式路由中可以通过 RouteParameter.Optional 指定一个可选参数,RouteParameter.Optional
阅读全文
摘要:问题 如何为路由中参数设置默认值。 解决方案 不管使用属性路由还是集中式路由,ASP.NET WEB API 都可以很方便的为路由定义默认参数。在每次客户端请求的时候,如果客户端没有传这些参数,框架会自动给他们赋值。 对于集中式路由,MapHttpRoute 扩展方法接收默认值使用的是第三个参数 I
阅读全文
摘要:问题 怎么样可以使用更贴近资源(Controller,Action)的方式定义路由。 解决方案 可以使用属性路由直接在资源级别声明路由。只要简单的在 Action 上使用属性路由 RouteAttribute,然后传一个相关路由模板就可以。属性路由与集中式路由在路由模板含义上基本是一样的,所有路由参
阅读全文
摘要:ASP.NET Web API 2 Recipes
阅读全文
摘要:问题 怎样集中的定义路由 解决方案 通过调用 HttpRouteCollectionExtension 类中的 MapHttpRoute 扩展方法在 HttpRouteCollection 中定义路由,可以通过 HttpConfiguration 对象调用。 最基础的使用就是定义一个非常通用的路由模
阅读全文
摘要:问题 在 Web API 中使用 OData Function 和 Action。 解决方案 可以通过 ODataModelBuilder,使用 OData 构建 ASP.NET Web API, EntityCollectionConfiguration,EnityTypeConfiguratio
阅读全文
摘要:问题 Web API 怎么支持通用的 OData 系统查询项,例如 $select 或 $filter。 解决方案 为了在 Web API 中启用查询项,我们需要在 Action 上使用 EnableQueryAttribute。 如果 Action 没有返回集合,而是返回单个对象的实例,调用端仍然
阅读全文
摘要:问题 如何控制 OData 路由 解决方案 为了注册路由,可以使用 HttpConfigurationExtension 类中 MapODataServiceRoute 的扩展方法。对于单一路由这样做足以,其余的处理由实体数据模型来处理。 从 ASP.NET Web API 2.2 开始支持 ODa
阅读全文
摘要:问题 怎样用在 Web API 中创建 OData 服务。 解决方案 对于我们来说,在 Web API 中使用 OData最简单的方式就是使用 ASP.NET 模板来创建Odata Controller。在 Controllers 文件夹上鼠标右键->添加->新建项。 显示一个如图 12-1 的对话
阅读全文
摘要:问题 ASP.NET Web API 构建 Web 应用程序时,要求使用 Session 在服务器存储一些用户特定的信息 解决方案 ASP.NET Web API 不支持 Session,因为 API 根本不依赖于System.Web。他想试图摆脱伪造 Session,非 HTTP这样的概念。 然而
阅读全文
摘要:问题 通过 CSRF(Cross-Site Request Forgery)防护,保护从 MVC 页面提交到ASP.NET Web API 的数据。 解决方案 ASP.NET 已经加入了 CSRF 防护功能,只要通过 System.web.Helpers.AntiForgery 类(System.W
阅读全文
摘要:问题 想要 ASP.NET Web API 执行模型验证,同时可以和 ASP.NET MVC 共享一些验证逻辑。 解决方案 ASP.NET Web API 与 ASP.NET MVC 支持一样的验证机制,都是通过System.ComponentModel.DataAnnoataions 的属性验证。
阅读全文
摘要:问题 我们想快速启动一个 ASP.NET Web API 解决方案。 解决方案 APS.NET 模板一开始就支持 ASP.NET Web API。使用模板往我们的项目中添加 Controller,在我们解决方案的 Controllers 文件夹上右键,选择“添加”->"Scaffolding"。 即
阅读全文
摘要:问题 想创建一个从 ASP.NET MVC controller 到 ASP.NET Web API controller 的直接链接,或者反向链接。 解决方案 可以使用 System.Web.Http.Routing.UrlHelp 的实例来创建一个指向 Controller的链接,来暴露ApiC
阅读全文
摘要:问题 我们想创建一个能够处理 HTML表单的 ASP.NET Web API 应用程序(使用 application/x-www-form-urlencoded 方式提交数据)。 解决方案 我们可以创建一个 Controller Action 接收一个 Moddel,Model 的结构和准备从HTM
阅读全文