在日常后端Api开发中,我们跟前端的沟通中,通常需要协商好入参的数据类型,和参数是通过什么方式存在于请求中的,是表单(form).请求体(body).地址栏参数(query).还是说通过请求头(header). 当协商好后,我们的接口又需要怎么去接收这些数据呢?很多小伙伴可能上手就是直接写一个实体,作为 api 函数的入参,然后就愉快的编写代码了:前端调用时却报 400 错误,可以说是一脸懵:当然,很多情况下这样写是不会报错的,因为我们需要的数据,往往只会存在于一个地方,就是请求体(body),…
我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问题及解决方法. 首先我们新建一个api项目 图1 (默认生成项目) 图2(运行首页) 图3(默认Api列表) 图4(默认Get的Api) 以上图1-4都是默认情况下生成页面看起来不是那么好看,而且测试也不方便,下面将介绍怎么使用swagger. 使用nuget包获取Swashbule.swagger…
webApi中参数传递 一:无参数的get方法: 前端:    function GetNoParam() { //为了统一:我们都采用$.ajax({}) 方法; $.ajax({ url: '/api/User/GetNoParam', type: 'get', dataType: 'application/json', //application/xml webapi 返回的数据类型,客户端请求时添加在请求头中 //当无法转换成客户想要的数据时,将报错: success: function…
1.在webapi中使用controller/action/id的路径配置,打开文件[App_Start] -[WebApiConfig] config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); 2.直接使用[HttpPost]过滤…
之前Ninject依赖注入是在MVC中使用,最近在WebApi中使用,用之前的MVC方式发现使用接口注入,一直是Null错误,网上查询了一些资源,总结一下,以后备用. 主要分为以下几步骤: 在NuGet上安装Ninject.MVC ,我安装的是最新版本nuget上安装Ninject.MVC5 定义两个类NinjectScope.NinjectResolver,用于实现最新版Web Api要求的IDependencyResolver 在Global中添加如下代码 protected void Ap…
什么是多态数据绑定? 我们都知道在ASP.NET Core WebApi中数据绑定机制(Data Binding)负责绑定请求参数, 通常情况下大部分的数据绑定都能在默认的数据绑定器(Binder)中正常的进行,但是也会出现少数不支持的情况,例如多态数据绑定.所谓的多态数据绑定(polymorphic data binding),即请求参数是子类对象的Json字符串, 而action中定义的是父类类型的变量,默认情况下ASP.NET Core WebApi是不支持多态数据绑定的,会造成数据丢失.…
我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问题及解决方法. 首先我们新建一个api项目 图1 (默认生成项目) 图2(运行首页) 图3(默认Api列表) 图4(默认Get的Api) 以上图1-4都是默认情况下生成页面看起来不是那么好看,而且测试也不方便,下面将介绍怎么使用swagger. 使用nuget包获取Swashbule.swagger…
在WebApi开发过程中,遇到一些客户端参数格式传输错误,经常被问到参数如何传递的一些问题,因此就用这篇博客做一下总结,肯定其它地方呢也有类似的一些文章,但是我还是喜欢通过这种方式将自己的理解记录下来 在客户端调用WebApi的一些接口时,最常使用到的HTTP方式有Get, Post, Put, Delete四个,下面会将这四个分成两类进行说明 第一类:Get/Delete Delete在Body中传递参数有争议, 因此强烈建议只在URL中传递参数,所以这个分类里面只考虑通过URL传递参数的情况…
我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问题及解决方法. 首先我们新建一个api项目 图1 (默认生成项目) 图2(运行首页) 图3(默认Api列表) 图4(默认Get的Api) 以上图1-4都是默认情况下生成页面看起来不是那么好看,而且测试也不方便,下面将介绍怎么使用swagger. 使用nuget包获取Swashbule.swagger…
目录 为什么是 JWT Bearer 什么是 JWT JWT 的优缺点 在 WebAPI 中使用 JWT 认证 刷新 Token 使用授权 简单授权 基于固定角色的授权 基于策略的授权 自定义策略授权 基于资源的授权 源代码 参考 为什么是 JWT Bearer ASP.NET Core 在 Microsoft.AspNetCore.Authentication 下实现了一系列认证, 包含 Cookie, JwtBearer, OAuth, OpenIdConnect 等, Cookie 认证是…