webapi

C# WebAPI中使用Swagger

别说谁变了你拦得住时间么 提交于 2019-12-25 20:18:09
  随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。 前端和后端的唯一联系变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要, swagger 就是一款让你更好的书写API文档的框架 。 其他API文档工具   没有API文档工具之前,大家都是手写API文档的,在什么地方书写的都有,有在 confluence 上写的,有在对应的项目目录下 readme.md 上写的,每个公司都有每个公司的玩法,无所谓好坏。 书写API文档的工具有很多,但是能称之为“框架”的,估计也只有 swagger 了。 在此先介绍一款其他的API文档工具,叫 rap ,这玩意儿用一句话就能概括:解放生产力,代替手写API的web工具。 RAP 写起来确实比手写文档要快, 可以选择某个项目,写针对某个项目的API RAP 是由阿里开发的,整个阿里都在用,还不错。github地址为: https://github.com/thx/RAP 当然咯, rap 不可能只有线上版本,肯定可以部署到私服上。 https://github.com/thx/RAP/wiki/deploy_manual_cn swagger rap 挺好的,但是和swagger比起来有点轻量。 先看看swagger的生态使用图:

MVC4 WebAPI(一)

ⅰ亾dé卋堺 提交于 2019-12-25 15:54:46
不管是因为什么原因,结果是在新出的MVC中,增加了WebAPI,用于提供REST风格的WebService,个人比较喜欢REST风格的WebService,感觉比SOAP要轻量级一些,而且对客户端的要求也更少,更符合网络数据传输的一般模式,客户端完全摆脱了代理和管道来直接和WebService进行交互,具体的区别可以参见 Web 服务编程,REST 与 SOAP (一)环境准备 本机的环境是XP+VS2010,需要安装VS2010 SP1升级包,MVC4升级包,Vs2010安装SP1后会影响SQLServer2008的自动提示功能,需要在安装补丁或插件,安装成功后可以新建如下的 MVC WebAPI 项目 (二)概览 新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models,Views,Controllers等文件夹和Global.asax文件 Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据进行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。和普通的MVC一样,Global.asax用于配置路由规则 (三)Models 和WCF中的数据契约形成鲜明对比的是,MVC

使用ASP.Net WebAPI构建REST服务(一)——简单的示例

早过忘川 提交于 2019-12-25 06:51:22
由于给予REST的Web服务非常简单易用,它越来越成为企业后端服务集成的首选方法。本文这里介绍一下如何通过微软的Asp.Net WebAPI快速构建REST-ful 服务。 首先创建一个Asp.Net Web应用程序(我这里用的是Visual Studio 2013,它已经内置了Web API2)。 在出来的模板中选择Empty(空项目),并勾选WebAPI。点击确定后,就创建了一个空的WebAPI服务。 此时只有一个空项目,还没有任何功能,在进行下一步之前,首先我们来看一下REST的基本操作模型,大致可以分为如下四种: POST — 创建资源 GET — 检索资源 PUT — 更新资源 DELETE — 删除资源 非常经典的CRUD模型。在Web API中实现这样一个的模型是非常简单的,直接使用向导建一个Controller即可 如果用传统的向导,记得把向导后面的那个1给去掉: 默认的模板内容如下: public class ValuesController : ApiController { // GET api/<controller> public IEnumerable < string > Get() { return new string [] { "value1" , "value2" }; } // GET api/<controller>/5 public

C# WebApi 请求方式Post,返回Response

假如想象 提交于 2019-12-23 22:42:45
1.[FromBody]属性只能用在一个参数上,当Body中有多个参数要定义类型。一个参数的时候 key="",value="123",key为空才能取到值。 2.返回String类型时内容前后会有双引号。要用HttpResponseMessage类型。 1 [HttpPost] 2 public HttpResponseMessage UpMessage([FromBody]UploadSmsDto body) 3 { 4 5 string message = "尊敬的经销商,您提交的兑换码已成功核销。感谢您的支持。【广汽菲克】"; 6 7 var response = Request.CreateResponse(HttpStatusCode.OK); 8 response.StatusCode = HttpStatusCode.OK; 9 response.Content = new StringContent(message); // 响应内容 10 return response; 11 } 参考: 【HttpResponseMessage】http://www.it165.net/pro/html/201305/6019.html 【FromBody】http://www.cnblogs.com/babycool/p/3922738.html 来源: https:/

WebApi系列~基于RESTful标准的Web Api

折月煮酒 提交于 2019-12-20 09:11:58
http://www.cnblogs.com/lori/p/3555737.html WebApi系列~基于RESTful标准的Web Api 回到目录 微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码可读性强的,上手快的,如果要拿它和web服务相比,我会说,它的接口更标准,更清晰,没有混乱的方法名称,有的只有几种标准的请求,如get,post,put,delete等,它们分别对应的几个操作,下面讲一下: GET:生到数据列表(默认),或者得到一条实体数据 POST:添加服务端添加一条记录,记录实体为Form对象 PUT:添加或修改服务端的一条记录,记录实体的Form对象,记录主键以GET方式进行传输 DELETE:删除 服务端的一条记录 注意上面公开的API接口都是在XMLHttpRequest情况下调用的,当然你可以使用jquery的ajax组件来完成这个请求调用,它的代码更加面向对象,下面举例说明一下 这是页面的HTML代码部分,实现最基本的CRUD操作 <fieldset> <legend>测试Web Api </legend> <a href="javascript:add()">添加(post)</a> <a href=

(转)非常好的WebApi入门文章

冷暖自知 提交于 2019-12-16 17:20:14
如何在VS中创建基于.NET的后端应用程序,该应用程序使用C#语言从Web API中提取。让我们开始吧! 为服务器后端逻辑选择语言的问题是几乎每个开发人员最重要的问题之一,特别是对于初学者。目前已经有很多不同的语言:Java,.NET(C#,VD),Ruby,Python,Perl,JavaScript(Node.js),Go,C ++。 除了这些语言的语法特征外,还有许多其他问题/问题,例如扩展的可能性,不同类型数据库的使用,高学习曲线,容错要求,大量数据等等。上。 哪种语言最受欢迎?你应该使用哪一个?也许有人会推荐PHP,它具有丰富的功能和较低的学习曲线。然而,事实仍然是现在最常用的语言是Java和.NET。 本教程介绍如何使用C#(ASP.NET)构建自己的Web服务器(Web API)。重要的是要注意,要托管您的服务器,您将需要基于Windows的托管。 先决条件 我想我们可以开始了。首先,当我们使用C#时,您需要使用Microsoft Visual Studio(您可以在Microsoft官方网站上获取它)。 此外,您还需要启用IIS(Internet信息服务)。在Windows中启用它很容易: 在Windows 10中打开“控制面板”,单击“程序”,然后找到“程序和功能”部分,并单击“打开或关闭Windows功能”。 在这里,找到Internet信息服务。单击其前面的

WebAPI之postman变量和session/token

混江龙づ霸主 提交于 2019-12-16 12:05:33
postman使用变量: 之前我们请求里面的主机地址都是localhost,表示本机。而在实际测试过程中,服务器地址往往并非是在本机上的,这时候就需要用到变量。 postman支持多个测试环境,一个环境里可以配置多个变量。 postman的变量主要分两种类型: ① 环境里面的变量 - 点击界面右上角的齿轮图标,选择Manage Environments - 在弹出对话框中,点击Add按钮,填写环境名 ENVIRONMENT NAME 、VARIABLE、CURRENT VALUE 如 :server1 serverip http://localhost - 这样一套环境就创建好了。创建好厚,就需要使用 可以将所有请求的url中的主机名localhost替换为为变量名{{server1}} 如 https://{{server1}}/api/pagenum - 注意:双花括号将变量名括起来,双花括号就表示里面是一个变量。 - 当进行测试时,若使用的是本机的API服务,那就选择名为server1配置的环境;若使用不是本地的,就选择server2的环境,postman就会使用不同环境里面的变量对应的值。 ② 全局变量 - 有时候,有些变量,我们并不需要配置到很多套环境里,因为基本上这就是一个固定值,要修改的话,所有的环境里面都要修改。 - 我们没有必要创建变量到环境中

webapi简介及参数绑定

烈酒焚心 提交于 2019-12-16 10:32:20
介绍: WebAPI用来开发系统间接口的技术,基于HTTP协议,返回默认是json格式。比wcf简单 更通用,更轻量级,更省流量(json格式); WebAPI尽可能复用MVC路由、ModelBinder、Filter等知识,但只是模仿 webapi默认路由机制是通过http请求类型匹配Action(REST风格),而MVC的默认路由机制是通过url匹配Action。 可以修改webapi默认路由机制,通过url匹配action Restfull风格: 就是基于谓词语义进行通讯协议的设计(利用get、post、put、delete请求接口,并通过http状态码返回结果,但是太多不好用) webapi参数绑定: get请求: 可以有多个重载、多个参数 如果使用实体参数,实体参数需要加[FromUri] post请求: 所以只能有一个参数,如果有多个参数,需要以对象的方式传递、或者JObject参数 单个参数,需要加[FromBody],键名称必须是空字符串 实体参数,不需要加[FromBody] 实体参数也可以使用JObject参数接收 可以传json格式字符串,自动绑定实体(请求类型需要设置为json格式 contentType:json) put请求: 只能有两个参数,一个通过querystring方式传递,作为要更新对象的主键,另一个是[FromBody]字段

【转】webapi基于单请求封装多请求的设计

≯℡__Kan透↙ 提交于 2019-12-16 10:29:52
怎么说,单请求封装多请求,这句话确实有点绕了,但还是要看清楚,想明白这到底是怎么一回事,单请求即一次请求(get,post,put,delete),封闭多请求,即在客户端发送的一个请求中可能包含多个子请求(真实的请求,接口),这种设计确实看着很灵活,客户端可以根据自己的需要去拿服务器的数据,确实不错! 首先我们要定义一套自己的请求和响应对象 #region 请求对象 /// <summary> /// 参数对象 /// </summary> [DataContractAttribute] public class RequestParam { public RequestParam(string name, string value) { this.ParamName = name; this.ParamValue = value; } [DataMemberAttribute] public string ParamName { get; private set; } [DataMemberAttribute] public string ParamValue { get; private set; } } /// <summary> /// 数据包中的实体 /// </summary> [DataContractAttribute] public class

webAPI

 ̄綄美尐妖づ 提交于 2019-12-16 09:58:01
graph TDA[JS]A -->|JS语法| D[ECMAScript]A -->|页面文档对象模型| E[DOM]A -->|浏览器对象模型| F[BOM] API 应用程序编程接口,就是一个工具,以便于能轻松实现想要完成的功能 Web API Web API是浏览器提供的一套操作浏览器功能和页面元素的API(DOM和BOM) DOM 可以改变网页的内容、结构和样式 DOM树 文档:一个页面就是一个文档 document 元素:页面中的所有标签都是元素,element 节点:网页中的所有内容都是节点(标签、属性、文本、注释等),node DOM把以上内容都看作是对象 DOM操作 获取元素 getElementById() 注意: 因为文档页面从上往下加载,所以先有标签,然后才能getElementById 参数是字符串,所以需要加引号 返回的是一个 element 对象 console.dir 可以打印返回的元素对象,更好的查看里面的属性和方法 getElementsByTagName() 参数是字符串,所以需要加引号d 得到的是对象的集合,可以用遍历来获取所有对象 得到的是动态的 例子: 获取ol里面的li <ol><li>123一二三四五</li><li>123上山打老虎</li><li>123老虎有几只</li><li>123快来数一数</li><li>123一二三四五