webapi

webapi概念

余生颓废 提交于 2019-12-15 06:46:49
1 AP I 的概念 API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 任何开发语言都有自己的API API的特征输入和输出(I/O) API的使用方法(console.log()) 2 Web API的概念 浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM) 此处的Web API特指浏览器提供的API(一组方法),Web API在后面的课程中有其它含义 ### 掌握常见的浏览器提供的API的调用方式 [MDN-Web API](https://developer.mozilla.org/zh-CN/docs/Web/API) 3 JavaScript的组成 3.1 ECMAScript - JavaScript的核心 定义了javascript的语法规范 JavaScript的核心,描述了语言的基本语法和数据类型,ECMAScript是一套标准,定义了一种语言的标准与具体实现无关 3.2 BOM - 浏览器对象模型 一套操作浏览器功能的API 通过BOM可以操作浏览器窗口,比如:弹出框、控制浏览器跳转、获取分辨率等 3.3 DOM - 文档对象模型 一套操作页面元素的API

c# 进阶之 WebAPI

牧云@^-^@ 提交于 2019-12-13 02:51:00
REST是设计风格而不是标准。 webapi有自己的路由。 webservice和wcf的协议都是soap协议,数据的序列化和反序列化都是soap的格式。而webapi是Json的数据传递 webapi的优点有哪些? (1)非常适合做http的请求,前端与webapi交互特别方便 (2)webapi更轻量因为使用的json数据来传递。 (3)webapi很多时候是给前端提供数据的,因为webapi跟控制器关联的没那么紧密(若是没webapi,用mvc的模式,那么页面直接从对应的控制器获取数据),这样传递数据webapi对,手机,app,页面都可以通过同一个数据源提供数据,会比较灵活一些。(会跨域) (一)配置webapi,访问 第一步:新建项目后,找到Global.asax文件----找到GlobalConfiguration.Configure(WebApiConfig.Register)方法------按F12进入 WebApiConfig.Register方法中----添加内容红框框 知识点:路由器注册顺序是由上往下的,会先从上面进行匹配。 路由器的名称不能重名,否则报错【CustomApi/DefaultApi】 第二步:设置webapi项目为启动项,然后启动,在网页路径上加api/values(控制器名称不要Controller) 知识点

WebAPI接口的自动化测试1

ⅰ亾dé卋堺 提交于 2019-12-11 17:59:36
自动化测试要满足四个条件: 1 - 自动化用例能够完成所有测试步骤 -------- postman不支持 没有完整的用例管理系统 2 - 每个用例的输入数据,必须要自动填入 -------- postman支持 3 - 每个用例的结果检查,必须可以用代码自动完成 ------ postman支持 4 - 具备环境初始化和清除功能 ------ postman不支持 postman受到沙盒限制并不能任意引用第三方库 python语言也可以实现web api接口测试。主要是构造出相应的http请求。 * 内置库有 httplib urllib2 * 第三方库 urllib3 requests pyCurl 因此,要想进行接口自动化,我们就来了解下Request库。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- Requests库: 第三方库,简单易用、功能强大,是python实现的最简单易用的HTTP库。 需要手动安装: pip install requests 提示successful即安装成功

WebAPI测试概念及postman初识

浪尽此生 提交于 2019-12-10 16:41:05
什么是接口? ------ 某个对象和外界交互的部分 消息交互接口:基于soap的web service ---- http协议 web api ------- http协议 diameter、radius ------ socket协议 编程接口:各种语言的开发包 其他接口:数据服务产品:sql语言操作接口 对账系统:FTP文件接口 web服务接口: 互联网产品对外提供的服务接口,我们通常称之为web服务接口、web service接口、REST接口 我们经常说的'接口测试'、‘API测试’,就是对web服务接口的测试。 包括APP服务端接口。 主要包括两种类型:① 基于SOAP的web service接口 ② REST接口 HTTP协议: 超文本传输协议 就是浏览器与服务器之间进行‘沟通’的一种规范。 HTTP协议属于应用层的协议。 HTTP版本:在0.9 1.0 1.1(最广泛) 2 要想知道http协议,就要清楚它的请求和响应,当然还有请求方式、状态码、URL地址等。 http请求: 一个完整的http请求,包含一个请求行,若干个请求头、空行、消息体 请求行:描述客户端的请求方法(如get、post等)、请求资源的名称、http协议的版本号 请求头:包含客户机请求的服务器主机名,客户机的环境信息等 (换行) 消息体:指浏览器端通过http协议发送给服务器的实体数据

.net WebApi服务

时光毁灭记忆、已成空白 提交于 2019-12-06 13:58:48
搭建测试环境 1.选择Web应用程序 2.选择API服务。如果是已存在的项目,添加对应的控制器,选择API服务 3.Value控制器,新增的API控制器必须继承 ApiController 4.Api路由。 可以在API路由那边,增加一个方法参数, routeTemplate: "api/{controller}/{action}/{id}",自由的定义方法名称 如何调用: https://www.jianshu.com/p/26999e75cfba ,这里面主要讲解了,如何传递参数给原本的post方法,参数名是[FromBody]string value; 通过Post请求的时候,只穿key/value,其中key必须为空,value可以是字符串,就可以在服务器端接收到对应的参数了。 这个方法并不是太推荐,总不能将所有的参数都放一个value,然后通过json解析去实现吧。另一个实现类的方法也不推荐,毕竟要实现多少,就需要编写多少个类,太过于麻烦 传入参数可以有四种,对应服务器四种不同的传值类型,个人更推荐传入Json,具体查看: https://blog.csdn.net/qq_22267353/article/details/82216535 ,下面是服务器端的方法,只要传入参数为JObject类型就可以 public string PostTest(JObject

.net webapi 使用swagger生成文档

扶醉桌前 提交于 2019-12-06 08:03:34
网上看到不少整理的,但是当我搭建的时候发现很多包在nuget中找不到了,所以特地在此写记录一下 我的项目的版本是4.5的,用的nuget包是Swagger-Net和Swashbuckle.Net45 添加完成后右键项目属性->生成->输出 勾选XML文档文件 启动项目后访问如下地址: 你的项目地址/swagger/ui/index 如图显示就正常的文档了,前提是你的代码中有注释 下边讲一下怎么在这个页面中请求接口 显示无参数的请求接口 这是有参数的使用 这场使用没问题,但是,有的接口会在header中添加一些内容进行请求头的验证,这里讲一下请求头有验证的情况下怎么设置 有过滤器ApiAuthAttribute 这里简单检查一下header中是否存在一个auth protected override bool IsAuthorized(HttpActionContext actionContext) { var authHeader = from t in actionContext.Request.Headers where t.Key == "auth" select t.Value.FirstOrDefault(); if (authHeader != null) { string token = authHeader.FirstOrDefault(); if (string

ASP.NET Core 2.2 WebApi 系列【九】使用SignalR

假装没事ソ 提交于 2019-12-06 00:09:10
1. 添加 SignalR 客户端库 右键点击项目->然后选择“添加” >“客户端库” 提供程序选择: unpkg ,库选择: @aspnet/signalr@1.1.4 选择“选择特定文件” ,展开“dist/browser” 文件夹,然后选择“signalr.js” 和“signalr.min.js” 选择指定位置安装即可 2.定义Hub集线器 创建MessageHub 并继承Hub。 Hub 类管理连接、组和消息 using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.SignalR; namespace NetCoreWebApi.SignalR { /// <summary> /// Message集线器 /// </summary> public class MessageHub : Hub { /// <summary> /// 存放已连接信息 /// </summary> public static readonly Dictionary<string, string> Connections = new Dictionary<string, string>(); /// <summary> /// 发送消息 /// </summary> /

ASP.NET Core 3.0 WebApi 系列【2】.Net Core + CodeFirst + MySql 实现数据的迁移

老子叫甜甜 提交于 2019-12-05 18:10:52
写在前面 在前一小节中,我们创建了基于 RESFULL 风格的服务。这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移。 一、开发环境 【1】运行环境:win10 家庭版 【2】开发工具:Visual Studio 2019 16.3.10 【3】数据库:MySql 8.0.0 二、前期准备 因为使用的是 MySQL 的数据库。所以,需要下载 MySql.Data 和 MySql.Data.EntityFrameworkCore 。 【1】选择 工具 -> NuGet包管理器 ->'NuGet程序包'。如图所示: 【2】搜索 MySql.Data ,下载 8.0.18 版本。如图所示: 【3】搜索 MySql.Data.EntityFrameworkCore ,下载 8.0.18 版本。如图所示: 三、CodeFirst 步骤 【1】创建电影类 Movie 类 using System; using System.ComponentModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace netCoreWebapi001 { public class movie { [Description(

WebAPI + log4net日志 存入数据库

…衆ロ難τιáo~ 提交于 2019-12-05 14:52:43
1.首先选择你的项目 打开net管理控制台 输入 install-package log4net 进行安装 也可以 在net包 搜索 log4net 2.安装完之后 在Models文件夹 创建一个Log4net文件夹 3.在 Log4net文件夹下创建 一个 LoggerHelper类 public class LoggerHelper { private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo"); private static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror"); private static readonly log4net.ILog logmonitor = log4net.LogManager.GetLogger("logmonitor"); public static void Error(string ErrorMsg, Exception ex = null) { if (ex != null) { logerror.Error(ErrorMsg, ex); } else { logerror.Error(ErrorMsg); } }

WebApi使用Token(OAUTH 2.0方式)

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-05 14:50:23
1.在项目中添加引用 Microsoft.AspNet.WebApi.Owin Microsoft.Owin.Host.SystemWeb Microsoft.Owin.Security.OAuth Microsoft.Owin.Security.Cookies Microsoft.AspNet.Identity.Owin Microsoft.Owin.Cors 2.新建Startup类 public class Startup { public void Configuration(IAppBuilder app) { ConfigAuth(app); HttpConfiguration config = new HttpConfiguration(); WebApiConfig.Register(config); app.UseCors(CorsOptions.AllowAll); app.UseWebApi(config); } public void ConfigAuth(IAppBuilder app) { OAuthAuthorizationServerOptions option = new OAuthAuthorizationServerOptions() { AllowInsecureHttp = true, TokenEndpointPath = new