var sPath = System.Web.Hosting.HostingEnvironment.MapPath("/FilePath/");…
9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Frist实现数据访问管理. 本例,我们模拟一个N层场景,用单独的客户端(控制台应用)来调用单独的基于REST服务的Web网站(WEB API应用) . 注意:每层使用单独的Visual Studio 解决方案, 这样更方便配置.调试和模拟一个N层应用. 假设有一个如Figure 9-3所示的旅行社和预订…
虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要求它实现IHttpController接口即可,所以我们将其统称为HttpController.既然HttpController指的是所有实现了IHttpController接口的类型,我们自然得先来了解一下这个接口的定义.如下面的代码片断所示,在IHttpController接口中仅仅定义了唯一的…
前言 曾几何时,微软基于Web服务技术给出最流行的基于XML且以扩展名为.asmx结尾的Web Service,此服务在.NET Framework中风靡一时同时也被.NET业界同仁所青睐,几年后在此基础上又扩展成为了WCF,基于SOAP协议,基于WCF标准需要一些配置上的改变.现如今,大势所趋我们只需要HTTP协议以及更加优美的JSON格式,这时将不得不出现一个更加轻量级的Web服务技术.当然,Web Service和WCF虽然有其局限性但是其仍被许多企业所广泛应用,说明一时半会还不会被淘汰,…
GET 方式 get方式传参 我们一般用于获取数据做条件筛选,也就是 “查” 1.无参 var look = function () { $.ajax({ type: "GET", url: "http://172.28.20.106:8002/api/products/", dataType: "xml", contentType: 'application/xml;charset=gb2312;' }).success(function (r…
一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创建一个新的对象,将新资源的地址作为响应消息的一部分返回: 2.PUT 用于更新 URI 上的一个资源,如果服务端允许,PUT 也可以用于新建一个资源:3.GET 用于获取 URI 资源的进行展示,GET 操作不应对服务端有任何影响: 4.DELETE 用于删除指定的URI 资源. 二.实现发送GET…
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我们对资源的CRUD操作都是通过相应的Http方法来实现——Post(新增),Put(修改),Delete(删除),Get(查询).查询在前几章我们已经实现了,本章就在我们的案列(CourseController)中实现put,post和delete方法. 使用Http Post方法创建一个Course 首先,在“CourseController”中创建Post(Cou…
转自:http://www.cnblogs.com/babycool/p/3922738.html 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Actio…
ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单类型,item是Product类型,是复杂类型. 简单类型实参值从哪里读取呢?--一般从URI中读取 所谓的简单类型包括哪些呢?--int, bool, double, TimeSpan, DateTime, Guid, decimal, string,以及能从字符串转换而来的类型 复杂类型实参值从…
原文:[ASP.NET Web API教程]5.5 ASP.NET Web API中的HTTP Cookie 5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.NET Web API中的HTTP Cookie 本文引自:http://www.asp.net/web-api/overview/working-with-http/http-cookies By Mike Wasson|September 17, 2012 作者:Mike Wasson | 日期:…
在Web Api中实现Http方法(Put,Post,Delete) 系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 在Web Api中,我们对资源的CRUD操作都是通过相应的Http方法来实现——Post(新增),Put(修改),Delete(删除),Get(查询).查询在前几章我们已经实现了,本章就在我们的案列(CourseController)中实现put,post和delete方法. 使用Http Post方法创建一个Cours…
ASP.NET Web API中的JSON和XML序列化 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web API中的JSON和XML格式化器. 在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTT…
目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建 通过上面的介绍我们知道利用HttpControllerSelector可以根据表示当前请求的HttpRequestMessage得到描述目标HttpController的HttpControllerDescriptor对象.在前面介绍HttpControllerDescriptor的时候我们提到过:HttpControllerDescriptor自身具有创建对应HttpCon…
目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的选择 ASP.NET Web API能够根据请求激活目标HttpController的前提是能够根据请求选择出正确的HttpController,HttpController的选择在ASP.NET Web API中通过HttpControllerSelector来实现.[本文已经同步到<How ASP.NET Web API Works?>] 目录 HttpControllerS…
在Asp.Net Web API中,请求的目标是定义在某个HttpController中的某个Action方法.当请求经过Asp.Net Web API消息处理管道到达管道"龙尾"后,在"龙尾"HttpRoutingDispatcher中将会进行HttpController的筛选和激活工作.那么,Asp.Net Web API在筛选和激活HttpController过程中做了哪些操作呢?下面我们开始今天的主题:通过查看源码,剖析Asp.Net Web API中Htt…
HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务端接口的耦合度.很多当今流行的RESTful API开发框架,包括Spring REST,也都默认支持HAL规范,当RESTful API被调用后,服务端就会返回ContentType为application/hal+json的JSON内容,例如: { "_links": { "…
在.NET Core WEB API中参数的模型绑定方式有以下表格中的几种: 微软官方文档说明地址:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.1 特性   绑定源 [FromHeader] 请求标头 [FromQuery] 请求查询字符串参数 [FromForm] 请求正文中的表单数据 [FromBody] 请求正文 [FromRoute] 当前请求中的路由 [FromServices] 作为操…
[译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 本文首发自:博客园 文章地址: https://www.cnblogs.com/yilezhu/p/9276565.html 园子里关于ASP.NET Core Web API的教程很多,但大多都是使用EF+Mysql或者EF+MSSQL的文章.甚至关于ASP.NET Core Web API中使用Dapper+Mysql组合的文章都很少,更别提Oracel+Dapper组合的文章了,那么今天就带…
一.消息处理程序的概念 信息处理程序(Message Handler)接收HTTP请求并返回一个HTTP响应的类.Message Handler继承 HttpMessageHandler 类. 通常,一系列消息处理程序协同工作.第一个Message Handler接收HTTP请求,进行一些处理,并将请求提供给下一个Message Handler.在某些时候,响应被创建并返回到Message Handler,此模式称为委托处理程序(delegating handler). 二.服务器端消息处理程序…
一.属性路由的概念 路由让webapi将一个uri匹配到对应的action,Web API 2支持一种新类型的路由:属性路由.顾名思义,属性路由使用属性来定义路由.通过属性路由,我们可以更好地控制Web API中的URI.例如,我们可以轻松创建描述资源层次结构的URI.一个栗子:api/customers/1/orders,我们很容易猜到这个路由的作用是找Id为1的客户的所有订单.但是基于约定的路由很难创建这样的uri. 早期的基于约定的路由仍然完全受支持.实际上,我们可以在同一个项目中组合这两…
一.Web API中的路由概念 路由的作用用一句话说明:通过request的uri找到处理该请求的Controller,Action,以及给Action的参数赋值. 一些路由的基本概念: route:路由规则对象,存放了路由的规则: routeCollection:路由规则集合,存放了route对象: route template:路由模板,形式和uri接近,用于匹配uri: route dictionary:路由字典,找到uri匹配的route template后创建的用于存储route te…
在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的controller. config.Routes.MapHttpRoute( name: "Food", routeTemplate: "api/v1/nutrition/foods/{foodid}", defaults:... ) config.Routes.MapHttp…
本篇涉及ASP.NET Web API中的返回数据合适和依赖注入. 获取数据 public IEnumerable<Food> Get() { var results = reop.GetAllFoods() .OrderBy(f => f.Description) .Take() .ToList(); return results; } 默认情况下,ASP.NET API控制器方法返回json数据格式.在请求的时候可以要求其它的格式,比如: User-Agent:FiddlerHost…
关于swagger 设计是API开发的基础.Swagger使API设计变得轻而易举,为开发人员.架构师和产品所有者提供了易于使用的工具. 官方网址:https://swagger.io/solutions/api-design/ 在没有接触Swagger之前,使用Web Api的时候,我们都是使用word文档提供接口说明的,比较尬,使用文档不方便的地方太多了,比如,当时使用的时候是可以马上找到的,但是时间久了,你就不记得了,找不到了,比如,调试的时候,出现问题,你就不知道到底是使用方的问题,还是…
C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩,类似winrar,可以选择是否排除基准目录 1 public void ZipDirectoryTest() 2 { 3 string path = System.IO.Path.Combine(System.IO.Path.GetTempPath(), DateTime.Now.Ticks.ToS…
本节导航 Swagger介绍 在ASP.NET CORE 中的使用swagger   在软件开发中,管理和测试API是一件重要而富有挑战性的工作.在我之前的文章<研发团队,请管好你的API文档>也专门阐述了通过文档管理工具,来保证API文档和代码的一致性,这样更加有助于团队的协作.   以往我们总是通过第三方平台工具来管理我们的API文档,如eolinker.在测试方面,我们也会依赖fiddler,PostMan这样的工具.   Swagger兼具了API文档管理和测试的功能,而且保证了代码和…
什么是Swagger? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步.使用Swagger能够让我们在线调试接口以及功能测试.现在我把Swagger集成到Asp.Net MVC 中. 具体步骤: 1.用Visual Studio 2017 创建一个Asp.Net Web API 项目 从模板中选择 Web…
在Asp.net Web API中,对业务数据的分页查询处理是一个非常常见的接口,我们需要在查询条件对象中,定义好相应业务的查询参数,排序信息,请求记录数和每页大小信息等内容,根据这些查询信息,我们在后端的Asp.net Web API中实现对这些数据的按需获取,并排序返回给客户端使用.本篇随笔介绍利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理. 1.Web API控制器基类关系 为了更好的进行相关方法的封装处理,我们把一些常规的接口处理放在BaseApiCon…
在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core/​ 在本文中,我们将了解如何在微服务中实现容错,即在 ASP.NET Core 中使用 Polly 构建弹性微服务(Web API).通过在微服务中实现容错,我们确保在其中一项服务发生任何故障时,整个系统不会受到影响. 在本文中,我不会介绍如何在 ASP.NET Core 中构建微服务,因为我已经…
http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在ASP.NET Web API中,对于CRUD(create, read, update, and delete)应用比传统WebAPI增加了很大的灵活性只要正确使用相关的协议,可以在同等情况下对一个CRUD应用可以节约很多开发时间,从而提高开发效率 二.怎么搭建 做一个简单的订单查询示例我们使用Co…