webapi

asp.net webAPI

被刻印的时光 ゝ 提交于 2019-12-05 14:44:52
Get: 1、Get参数传递的本质是url字符串拼接; 2、url字符串长度受限制; 3、Get参数传递在Http请求头部传递,而不支持Request-Body传递; 4、Get类型的方法支持参数为基本类型,不支持实体类型; 5、Get类型的方法命名,应尽量采用“Get+方法名”的命名方式,且习惯性地在方法前加上[HttpGet特性]; 6、实参与形参的匹配,遵循路由规则; 7、Get对应DB的Select操作,从这一点来理解,就知道为什么Http不支持实体对象传递的合理性了,因为一般情况,我们都是通过简单的字段查询信息(对应基本类型) //api/Person public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } //http://localhost:27653/api/person/25 //[Route("GetID")] [Route("api/Person/{id}")]//如果在这里设置了路由,那么就不会再执行webAPIConfig.cs中的路由了。 public string Get(int id) { return "vichin" + id; } //api/Person?phoneNum=186 //http://localhost:27653/api

webapi简单实现JWT登陆

徘徊边缘 提交于 2019-12-05 04:45:52
刚完成,怕忘记.特来记录一下 登陆返回token的代码没有,此处记录 1 public class ApiAuthAttribute:AuthorizeAttribute 2 { 3 protected override bool IsAuthorized(HttpActionContext actionContext) 4 {  //获取请求头中auth的字段 5 var authHeader = from t in actionContext.Request.Headers where t.Key == "auth" select t.Value.FirstOrDefault(); 6 if (authHeader!=null) 7 { 8 string token = authHeader.FirstOrDefault(); 9 if (!string.IsNullOrEmpty(token)) 10 { 11 try 12 { 13 string data = DesHelper.Decrypt(System.Web.HttpUtility.UrlDecode(token), "0123456");//这里是自己的加密方法,这里可以随意设定,重点就是后边把信息解出来 14 var d = JsonConvert.DeserializeObject<Dictionary

一、Signalr WebApi客服-客户链接

自闭症网瘾萝莉.ら 提交于 2019-12-05 04:26:47
一、前端客服代码 <!doctype html> <html> <head> <meta charset="utf-8"> <title>LayIM测试</title> <link rel="stylesheet" href="./layui/css/layui.css" media="all"> <link rel="stylesheet" href="./contextMenu/contextMenu.css"> </head> <body> <script src="./layui/layui.js"></script> <script> layui.config({ base: './contextMenu/' //扩展 JS 所在目录 ,version: true }).extend({ ext: 'contextMenu' }); //演示代码 layui.use('layim', function(layim){ var layim = layui.layim; layim.config({ init: { //配置客户信息 mine: { "username": "访客" //我的昵称 ,"id": "100000123" //我的ID ,"status": "online" //在线状态 online:在线、hide:隐身 ,"remark": "在深邃的编码世界

ASP.NET Core WebApi中使用FluentValidation验证数据模型

核能气质少年 提交于 2019-12-05 04:11:23
原文: ASP.NET Core WebApi中使用FluentValidation验证数据模型 原文链接: Common features in ASP.NET Core 2.1 WebApi: Validation 作者:Anthony Giretti 译者:Lamond Lu 介绍 # 验证用户输入是一个Web应用中的基本功能。对于生产系统,开发人员通常需要花费大量时间,编写大量的代码来完成这一功能。如果我们使用FluentValidation构建ASP.NET Core Web API,输入验证的任务将比以前容易的多。 FluentValidation是一个非常流行的构建强类型验证规则的.NET库。 配置项目 # 第一步:下载FluentValidation # 我们可以使用Nuget下载最新的 FluentValidation 库 CopyPM> Install-Package FluentValidation.AspNetCore 第二步:添加FluentValidation服务 # 我们需要在 Startup.cs 文件中添加FluentValidation服务 Copypublic void ConfigureServices(IServiceCollection services) { // mvc + validating services.AddMvc()

WebAPI学习笔记(6)HttpStatusCode枚举值列表

走远了吗. 提交于 2019-12-04 23:43:55
public enum HttpStatusCode { // // 摘要: // 等效于 HTTP 状态 100。System.Net.HttpStatusCode.Continue 指示客户端可能继续其请求。 Continue = 100, // // 摘要: // 等效于 HTTP 状态 101。System.Net.HttpStatusCode.SwitchingProtocols 指示正在更改协议版本或协议。 SwitchingProtocols = 101, // // 摘要: // 等效于 HTTP 状态 200。System.Net.HttpStatusCode.OK 指示请求成功,且请求的信息包含在响应中。这是最常接收的状态代码。 OK = 200, // // 摘要: // 等效于 HTTP 状态 201。System.Net.HttpStatusCode.Created 指示请求导致在响应被发送前创建新资源。 Created = 201, // // 摘要: // 等效于 HTTP 状态 202。System.Net.HttpStatusCode.Accepted 指示请求已被接受做进一步处理。 Accepted = 202, // // 摘要: // 等效于 HTTP 状态 203。System.Net.HttpStatusCode

Swagger UI in AspNetCore WebAPI

妖精的绣舞 提交于 2019-12-04 23:24:59
Swagger其实包含了三个部分,分别是Swagger Editor文档接口编辑器,根据接口文档生成code的Swagger Codegen,以及生成在线文档的Swagger UI。 在AspNetCore中通常使用Microsoft封装的Swashbuckle来使用Swagger UI,这是一个AspNetCore的中间件。和其他中间件一样都是分为register和use两个部分。 Installation VS中很简单,直接用NuGet安装Swashbuckle.AspNetCore即可。 或者使用命令行: dotnet add package --version xxx Swashbuckle.AspNetCore Register 所有Swagger UI注册的configue相关的内容都放在AddSwaggerGen这个方法里面: namespace Microsoft.Extensions.DependencyInjection { public static class SwaggerGenServiceCollectionExtensions { public static IServiceCollection AddSwaggerGen(this IServiceCollection services, Action<SwaggerGenOptions>

MVC下通过jquery的ajax调用webapi

て烟熏妆下的殇ゞ 提交于 2019-12-04 22:58:14
如题 jquery的应用,不会的自己去补。 创建一个mvc项目,新建控制器、视图如下: 其中data控制器负责向前台提供数据,home控制器是一个简单的访问页控制器。 data控制器代码如下: 1 public class DataController : Controller 2 { 3 [HttpGet] 4 public ActionResult GetById(int id) 5 { 6 id++; 7 return Content(id.ToString()); 8 } 9 } 很简单,作为一个webapi,送进来一个数字,加一返回。 返回的content上课也讲过,忘了的去看书上控制器中action的返回类型。 index页面代码如下: 1 @{ 2 Layout = null; 3 } 4 5 <!DOCTYPE html> 6 7 <html> 8 <head> 9 <meta name="viewport" content="width=device-width" /> 10 <title>Index</title> 11 </head> 12 <body> 13 <div id="div1"> 14 <input type="text" id="test1" /><br /> 15 <input type="text" id="test2" value="0"

ASP.NET Core - 实现自定义WebApi模型验证

你说的曾经没有我的故事 提交于 2019-12-04 21:24:35
原文: ASP.NET Core - 实现自定义WebApi模型验证   Framework时代     在Framework时代,我们一般进行参数验证的时候,以下代码是非常常见的 [HttpPost] public async Task<JsonResult> SaveNewCustomerAsnyc(AddCustomerInput input) { if (!ModelState.IsValid) { return Json(Result.FromCode(ResultCode.InvalidParams)); } ..... }   或者高级一点是实现IActionFilter进行拦截,如下:     public class ApiValidationFilter : IActionFilter { public bool AllowMultiple => false; public async Task<HttpResponseMessage> ExecuteActionFilterAsync(HttpActionContext actionContext, CancellationToken cancellationToken, Func<Task<HttpResponseMessage>> continuation) { var method =

vue.js与webapi

一世执手 提交于 2019-12-04 20:41:45
添加新项目webapi 添加实体类 添加ValuesController控制器 添加读取execl文件的方法 1.方法体外申明集合用来循环读取execl的数据 2.创建 Workbook 对象流筛选表数据遍历读取数据添加到集合中去 运行 输入localhost:8080/api/Values 解决asp.net webApi跨域请求问题 1.配置web.config文件 2.配置Global.asax文件 来源: https://www.cnblogs.com/yaiq/p/11882156.html

WebApi上传文件

风流意气都作罢 提交于 2019-12-04 17:55:07
使用webapi上传文件需要引用ICSharpCode.SharpZipLib.Zip; 前端代码示例: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 <meta charset="utf-8" /> 7 8 <script src="Resource/jquery-1.10.2.min.js"></script> 9 <script> 10 $(function () { 11 $("#upload").click(function () { 12 $("#imgWait").show(); 13 var formData = new FormData($('form')[0]); 14 // formData.append("myfile", document.getElementById("file1").files[0]); 15 $.ajax({ 16 url: "https://localhost:81/api/file/uploadfile/111", 17 type: "POST", 18 data: formData, 19 /** 20