WebAPI学习】的更多相关文章

Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Middleware功能支持. 在演示Middleware功能之前,先要了解一下Asp.Net管道模型发生了什么样的变化. 第一部分:管道模型 1. Asp.Net管道 在之前的Asp.Net里,主要的管道模型流程如下图所示: 请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象…
路由其实也可以很简单-------Asp.net WebAPI学习笔记(一)   MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中,一切皆路由,url中是完全拒绝"?"和“&”.对此,我也不好说什么,搞不好是个人风格.路由虽然重要,但其实也只是实现MVC的一种手段,并非你用的路由越多,你的url完全不使用参数,你的MVC就越纯正.说实话,笔者一开始对路由也感到恐惧,但是阅读了官方文档后,发现路由其实也可以很简单…
刚开始学习WebApi就遇到了问题,在同一个API控制器中,如果两个方法的签名相同,比如 [HttpGet] public string GetString() { return "Hello World"; } [HttpGet] public string MyName() { return "张三"; } 会报错: Multiple actions were found that match the request: System.String GetStri…
首先,本人大学刚毕业,想把自己学习的一些东西记录下来,也是和大家分享,如有不对之处还请多加指正.声明:但凡是我博客里的文章均是本人实际操作遇到的例子,不会随便从网上拷贝或者转载,本着对自己和观众负责的态度. 什么是WebAPI?我的理解是WebAPI+JQuery(前端)基本上能完成Web MVC的功能,即:这么理解吧,WebAPI相当于Web MVC的后台部分. 接下来直接上例子吧,都是我在学习过程中遇到或者发现的一些问题.  一.创建WebAPI项目 (这个环节不是本章重点) 二.传递参数遇…
本文用来保存自己学习WebAPI和Swagger使用过程中参考的文章,以及对WebAPI的初步了解. 1.RESTful风格 WebAPI只支持Http协议: 1.1.WebAPI与MVC的区别 ValuesController 区别一:存在API控制器都使用的基类:ApiController 区别二:控制器中的方法返回原始对象,不是视图 区别三:MVC和WebAPI传统调度之间的差异.MVC根据名称调度操作,WebAPI默认根据动词调度操作 ApiController上的ExecuteAsyn…
写在前面 最近在做一个app的时候发现需要写后台服务.所以,在考虑是使用webapi还是使用webserver来写这个后台服务的时候.爱纠结的我,最后还是选择了使用webapi来写这个后台服务. 原因有二 1.webapi 使用的是http的通讯协议想比于webserver soap通讯协议会更好. 2.webapi 是无状态的,所以,它会比webserver更轻量. 3.webapi 目前支持post,get,等http请求. 为了以后工作的需要,mark学习webapi的整个过程.废话不多说…
本篇将结合这个系列的例子的基础上演示在Asp.Net Core里如何使用XUnit结合Moq进行单元测试,同时对整个项目进行集成测试. 第一部分.XUnit 修改 Project.json 文件内容,增加XUnit相关的nuget包引用,并修改部分配置. { "version": "1.0.0-*", "testRunner": "xunit", // 设置测试工具为xunit "buildOptions"…
目前使用webapi的调试主要有 1.用接口宿主调试.(宿主形式多样:web.winform.还有就是直接用app进行接口调试) 2.用Fiddler抓Http信息,进行调试. 1.用接口宿主调试. 在<ASP.NET Web API 2 框架揭秘>一书第一章就提到宿主的概念,宿主可以是web页面.winform等形式. 通过这些宿主,我们在后台设置断点对webapi进行调试.在mvc中创建的webapi宿主默认是web. 我们也可以直接用app,通过连接本地,设置断点.这个需要将webapi…
引言: ASP.NET WebAPI的核心框架是一个消息处理管道,这个管道是一组HttpMessageHandler的有序组合.这是一个双工管道,请求消息从一端流入并依次经过所有HttpMessageHandler的处理.在另外一端,目标HttpController被激活,Action方法被执行,响应消息随之被生成.响应消息逆向流入此管道,同样会经过逐个HttpMessageHandler的处理.这是一个独立于寄宿环境的抽象管道,如何实现对请求的监听和接收,以及将接收的请求传入消息管道进行处理并…
由于工作的原因,断断续续终于看完了<ASP.NET Web API 2 框架揭秘>第二章关于WebApi的路由系统的知识. 路由系统是请求消息进入Asp.net WebApi的第一道屏障,其根本目的利用注册的路由表对请求的URI进行解析以确定目标HttpController和Action的名称,以及与某个Action方法某个参数进行绑定的路由变量. Asp.net webApi中的路由系统和Asp.net中的路由系统很相似,也有Route,只是WebApi的路由系统又独立于Asp.net的路由…
越了解Http对WebApi开发就越有帮助,因为WebApi就是建立在Http基础之上的. 一.Http: 通过 <ASP.NET Web API 2 框架揭秘>一书中 了解到 什么叫Web资源.什么是媒体类型.以及URI和URL的区别. 利用Http我们可以获取服务器端的资源,而我们用URI来标识一个资源. 在更进一步认识Http之前,看一张图: Http是处于TCP/IP协议簇的应用层. 因为网络层是不安全的,传输层成为了应用层和网络层的“中间枢纽”,专业来说就是 保存双方针对 同一个连接…
WebApi是微软在VS2012 MVC4版本中绑定发行的,WebApi是完全基于Restful标准的框架.RestFul: (英文:Representational State Transfer,简称REST)网上关于Restful定义的资料很多,我个人理解的Restful api 是指基于资源的定义的接口,它的所有接口都是对资源的操作.REST的核心原则是将你的API拆分为逻辑上的资源.这些资源通过http被操作(GET ,POST,PUT,DELETE).Restful Api接口标准的定…
webapi简介 在asp.net中,创建一个HTTP服务,有很多方案,以前用ashx,一般处理程序(HttpHandler),现在可以用webapi 微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称,有的只有几种标准的请求,如get,post,p…
在上一篇文章<路由其实也可以很简单>,我们解决了路由问题,这篇文章,我们来研究剩下的另一个问题,为何我们的方法返回的是一个列表,输出到客户端的时候,变成json呢,大家应该还记得我们上一篇文章ProductsController的代码: using ProductsApp.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Web.Ht…
MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中,一切皆路由,url中是完全拒绝"?"和“&”.对此,我也不好说什么,搞不好是个人风格.路由虽然重要,但其实也只是实现MVC的一种手段,并非你用的路由越多,你的url完全不使用参数,你的MVC就越纯正.说实话,笔者一开始对路由也感到恐惧,但是阅读了官方文档后,发现路由其实也可以很简单,关键在于我们如何使用.由于笔者也是初学者,有什么错漏的地方,欢迎大家指正. 本系…
本篇将在这个系列演示的例子上继续记录Asp.Net Core在Windows上发布的过程. Asp.Net Core在Windows上可以采用两种运行方式.一种是自托管运行,另一种是发布到IIS托管运行. 第一部分.自托管 一.依赖.Net Core环境 修改 project.json 文件内容,增加发布时需要包含文件的配置内容 { "version": "1.0.0-*", "testRunner": "xunit", //…
1.restful是基于无状态的,所谓无状态就是说客户端和服务端的每次通话都是独立的,不存在session和cookie之类的保存状态的机制,基于该协议可实现简单的curd操作, 其操作分为get\post\delete\add等,说白了restful指的是一组架构约束条件和原则对安全性要求不高,如果实现较复杂的逻辑推荐使用web service.数据通信默认采用json格式传输,通信方式可以基于ajax,webform,当然服务端取值方式也会不一样. 2asp.net mvc中的webapi也…
WebAPI WebApi是添加到Asp.Net平台的一个新特性,可以快速的创建Web服务,并对客户端提供HTTP的API调用接口 WebApi是建立在MVC框架基础之上,但不属于MVC的一部分. 序章 Http从一开始就定义了一个范围更广的应用程序模型,全面支持与数据的交互和对数据的操控. 但我们实际上的交互,只是Get和Post,只用到了HTTP的一部分功能. 除了经典的GET和POST方法,HTTP还定义了PUT.DELETE.PATCH方法,这就是我们需要使用WebAPI的地方. 利用W…
  最近有一些时间,打算学习和整理一下Web API的一些学习资料的翻译工作.以下是对Web API 的大概目录的整理.欢迎更多的朋友一起加入到学习Web API 的队伍中来,如果你想贡献自己的,请联系QQ:546975675 目录 第1章 入门                    1.Web API 入门 第2章 路由                         2.1 Asp.net Web API 路由                        2.2 Web API 路由和动作…
A asp.net Core 系列[一]——创建Web应用 asp.net Core 系列[二]—— 使用 ASP.NET Core 和 VS2017 for Windows 创建 Web API asp.net core 自定义404等友好错误页面 B asp.net core WebAPI发布 好 -- 指定端口http://www.cnblogs.com/jhxk/articles/9305253.html ASP.NET Core 404错误(转自其它网站) https://www.cn…
目录 写在前面 WebApi Get 请求 1.无参数的请求 2.一个参数的请求 3.多个参数的请求 4.实体参数的请求 WebApi Post 请求 1.键值对请求 2.dynamic 动态类型请求 3.JObject 参数请求 4.实体类 请求 写在前面 上一篇,我已经写了如何快速的创建一个webapi项目.接下来,说一下webapi相关的路由请求吧. 我们来创建一个包含读/写操作的web api 2控制器. 我们仔细看这个初始的web api,我们会发现 1.在控制器的方法中,会默认一种格…
WebAPI概述 今天的web计算平台包含了广泛的功能,其中的大部分均可以通过API(应用程序编程接口)访问. web平台归为6个基本设施,都会用到webapi,包括存储服务.消息服务.计算服务.信息服务.搜索服务.Web2.0服务. 定义: API是拥有一组函数组成的某种接口,它允许程序员访问应用程序的特定的功能或数据,操作系统或其他服务. Web API顾名思义,是一个可以使用HTTP协议访问的API.这是一个概念,而不是技术. 我们可以使用不同的技术来构建Web API,如Java..ne…
对于GET请求,如果方法名不是以Get开头,就必须加上[HttpGet]标签,不然无法找到该方法,如果是以Get开头则没有这个问题. 因此,推荐所有方法都确定访问方式,加上标签. [HttpGet] public int GetSum(int a, int b) { return a + b; } [HttpGet] public string MyName() { return "张三"; }…
引用MSDN: ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.…
本篇将演示Asp.Net Core如何在多环境下进行开发适配. 在一个正规的开发流程里,软件开发部署将要经过三个阶段:开发.测试.上线,对应了三个环境:开发.测试.生产.在不同的环境里,需要编写不同的代码,比如,在开发环境里,为了方便开发和调试,前段js文件和css文件不会被压缩,异常信息将会暴露得更加明显,缓存一般也不会使用等等.而在测试环境里,为了更加接近生产环境,在开发采取的调试手段将会被屏蔽,同时为了能更好的测试发现问题,通常也会添加一些测试专用的服务和代码.最终在生产环境上,因为高效性…
本篇将记录.Net Core里颇有特色的结构化配置的使用方法. 相比较之前通过Web.Config或者App.Config配置文件里使用xml节点定义配置内容的方式,.Net Core在配置系统上发生了很大的变化,具有了配置源多样化.更加轻量.扩展性更好的特点. 第一部分.基于键值对的配置 如果要使用结构化配置,需要先引用 "Microsoft.Extensions.Configuration": "1.0.0" nuget包.下面通过一个.Net Core控制台程…
本篇将介绍Asp.Net Core中一个非常重要的特性:依赖注入,并展示其简单用法. 第一部分.概念介绍 Dependency Injection:又称依赖注入,简称DI.在以前的开发方式中,层与层之间.类与类之间都是通过new一个对方的实例进行相互调用,这样在开发过程中有一个好处,可以清晰的知道在使用哪个具体的实现.随着软件体积越来越庞大,逻辑越来越复杂,当需要更换实现方式,或者依赖第三方系统的某些接口时,这种相互之间持有具体实现的方式不再合适.为了应对这种情况,就要采用契约式编程:相互之间依…
在上一篇里,介绍了中间件的相关内容和使用方法.本篇将介绍Asp.Net Core MVC框架的过滤器的相关内容和使用方法,并简单说明一下与中间件的区别. 第一部分.MVC框架内置过滤器 下图展示了Asp.Net Core MVC框架默认实现的过滤器的执行顺序: Authorization Filters:身份验证过滤器,处在整个过滤器通道的最顶层.对应的类型为: AuthorizeAttribute.cs Resource Filters:资源过滤器.因为所有的请求和响应都将经过这个过滤器,所以…
本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Middleware功能支持. 在演示Middleware功能之前,先要了解一下Asp.Net管道模型发生了什么样的变化. 第一部分:管道模型 1. Asp.Net管道 在之前的Asp.Net里,主要的管道模型流程如下图所示: 请求进入Asp.Net工作进程后,由进程创建HttpWorkRequest对象,封装此次请求有关的所有信息,然后进入HttpRuntime类进行进一步处理.H…
刚创建的 Asp.Net Web Api 项目,在进行简单的测试时发现返回的 JSON 数据很丑陋.与平时我们使用的 JSON.NET 序列化出来的字符串不一样.通过下面的设置就可以了: // 清除所有媒体类型格式化器 config.Formatters.Clear(); var formatter = new JsonMediaTypeFormatter { SerializerSettings = { ContractResolver = new Newtonsoft.Json.Serial…