.NetCore WebApi】的更多相关文章

如何建 .netcore webapi 项目这个就不说了,这个都没有没必要看下去. 我这里是.netcore 2.0,虽然没测过1.0的,但想来差不多. 1.Nuget Packages安装,使用程序包管理器控制台,安装命令:Install-Package Swashbuckle.AspNetCore -Pre 或者搜索安装  Swashbuckle.AspNetCore.Swagger 2.生成项目xml文档,多项目的情况下 3.配置Startup.cs.为了直观,我把整个类贴这里了,具体功能…
上接:.NetCore WebApi——Swagger简单配置 任何项目都有权限这一关键部分.比如我们有许多接口.有的接口允许任何人访问,另有一些接口需要认证身份之后才可以访问:以保证重要数据不会泄露. 关于JWT 维基百科上是这样定义的: JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的.用于在网络上声明某种主张的令牌(token).JWT通常由三部分组成: 头信息(header), 消息体(payload)和签名(signature).它是一种用于双方…
在前后端分离的大环境下,API接口文档成为了前后端交流的一个重点.Swagger让开发人员摆脱了写接口文档的痛苦. 官方网址:https://swagger.io/ 在.Net Core WebApi中通过简单配置即可使用这一强大的功能. 1.新建一个API的项目 选择 API 项目 2.引入Swagger包..Net Core 中支持两个分别为Swashbuckle和NSwag.两者的配置大同小异.这里以Swashbuckle为例. 方式1:选择工具——Nuget包管理——管理解决方案的Nug…
一.问题 使用Swashbuckle.AspNetCore生成.NetCore WEBAPI的接口文档的方法 二.解决方案 参考文章:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/web-api-help-pages-using-swagger?tabs=visual-studio 1.Install-Package Swashbuckle.AspNetCore 2.在ConfigureServices中添加AddSwaggerGe…
一.创建一个Asp.NetCore WebApi 项目 二.引入NuGet包 SwashBuckle.AspNetCore 三.在项目属性配置中设置 四.修改项目的启动文件Startup.cs 1).在ConfigureServices方法中注册Swagger中间件 public void ConfigureServices(IServiceCollection services) { services.AddMvc().SetCompatibilityVersion(Compatibility…
目录: .NetCore WebApi——Swagger简单配置 .NetCore WebApi——基于JWT的简单身份认证与授权(Swagger) .NetCore WebApi —— Swagger版本控制 版本控制的好处是显而易见的,利用Swagger展示不同版本的API更能体现效果. 1.安装Nuget包:Microsoft.AspNetCore.Mvc.Versioning 2. 配置Startup类  2.1  添加新成员 ,用来获取API版本信息 /// <summary> //…
.NetCore WebApi结构及前端访问方式(Ajax方式,fetch方式,axios方式) //访问的地址api/控制器名称/方法名称;action一般会省略 [Route("api/[controller]/[action]")] public class TestController : ControllerBase { //[Route]与[HttpPost]内都设置了参数相当于这个方法有两个请求地址 //两个地址都是接在类上定义的地址后面使用 [Route("i…
1. 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息.因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名.简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快 自包含(Self-contained):负载中包含了所有用户…
1 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象的形式安全的传递信息.因为数字签名的存在,这些信息是可信的,JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名.简洁(Compact): 可以通过URL,POST参数或者在HTTP header发送,因为数据量小,传输速度也很快 自包含(Self-contained):负载中包含了所有用户所…
Asp.netCore WebApi 3.1 跨域的预检查options问题 1:我们直接使用core跨域的中间件 ,注入跨域服务, services.AddCors(options => { // CorsPolicy 是自訂的 Policy 名稱 options.AddPolicy("CorsPolicy", policy => { policy.SetPreflightMaxAge(TimeSpan.FromSeconds(1800L));//update by ja…
1.WebAPI新增日志过滤器or中间件后Action读取到的请求Body为空问题 案例: 自定义了一个中间件,用于记录每次访问webapi的入参,以及引用了Swagger. 先看下面这段代码: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseHs…
一 .配置 1.vs2019 创建一个.net core web程序,选择webapi 2.项目中添加一个配置文件:添加--新建项--XML文件,命名为log4net.config 我使用的是log4net的RollingLogFileAppender,他的好处是按天记录日志,一般日志记录会选择30天 <configuration> <!-- This section contains the log4net configuration settings --> <log4n…
介绍: 官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架.Web API最重要的是可以构建面向各种客户端的服务. core的WebAPI与ASP.NET WebAPI是有些区别的,现在使用的是控制器路由[Route("api/Menu")]和请求方式路由[HttpGet].[HttpGet("{id}")]结合的 方式.直接在控制器和Action上使用方法注释.没有ASP.NET WebAPI存在单独的配置路由规则类.先…
首先贴上微软的文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files 参考网址:http://www.cnblogs.com/wangrudong003/p/7592689.html#3877063 代码: //虚拟目录实现apk文件下载 var path = filePath + @"\apk"; app.UseStaticFiles(new StaticFileOptions() { Fil…
因为我是一直写C#的,所以最近闲暇时间一直在学习.NET Core,该博客的后端使用的就是.NET Core WebApi然后加前端Vue. 首先后端.NET Core搭的框架是一个仓储层+服务层+API,然后数据库访问是EF Core+Mysql数据库.具体接口都使用的异步,使用第三方IOC容器解耦. 然后前端页面是网上找的模板https://www.yangqq.com/link.html,博主有各种风格的博客,可以去看下.然后接口请求是axios,vue用来处理数据. 开发环境:vs201…
  一.创建项目 新建api项目: 建好之后,一个默认的控制器已经有了: 运行就可以直接访问get接口获取数据: 二.跨平台部署 部署方面,微软已经完善的很好了,基本上算是傻瓜式操作.项目右键选择发布: 部署模式可以采用框架依赖,或独立,选择框架依赖,则需要在目标平台安装netcore运行时后才能运行netcore程序. 平台可以选择windows或linux: 发布完成后,直接运行“dotnet *.dll”即可将api服务建立起来,默认建立http的5000端口和https的5001端口,可…
安装Hangfire 在webapi项目中通过nuget安装Hangfire.Core,Hangfire.SqlServer,Hangfire.AspNetCore,截止到目前的最新版本是1.7.6. 使用MSSQL数据库 可以创建一个新的数据库,或者使用现有数据库. CREATE DATABASE [HangfireTest] GO 设置appsettings.json { "ConnectionStrings": { "Hangfire": "Serv…
1.参数带[FormBody]标签 2.ajax 请求 content-type:application/json 3.post时 需要JSON.stringify 4.GET 时不需要JSON.stringify 第二种形式 1.webapi 参数 可带可不带[FromForm] 2.ajax 请求 content-type 默认 application/x-www-form-urlencode 不要更改 3.POST 时 不要JSON.stringify…
1.简单请求 [HttpGet] public ActionResult Get(int id) Postman: api / controller / action?id=1 2.form-data [HttpPost] public void Post([FromForm] string param) Postman: api / controller / action 选form-datat:以key-value形式传值 3.json [HttpPost]public void Post(…
参照 http://www.cnblogs.com/GreedyL/p/7474368.html 思路: 1.创建ActionFilter拦截请求,在拦截器中注入IUOW,IUOW里面注入IDbContext,借助EF的commit自带的事务来实现事务处理 2.Action中调取一组业务服务层IService,IService里面注入IRepository(IRepository里面注入了IDbContext) 3.事务实现的关键在于IUOW与Irepository中的IdbContext为同一…
修改startup类中的configure方法…
配置在iis上,除了环境配置错误的原因还有一种可能是连接字符串的问题,iis要求使用sql server的sa或者其他登录用户. ps:连接字符串:  "Default": "Server=localhost; Database=数据库; User ID=sa;Password=密码;"…
参考微软官方说明:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration 具体为: 读取方法见下图中标红的格式,数字代表顺序,分号代表级别 Console.WriteLine($"option1 = {Configuration["option1"]}"); Console.WriteLine($"option2 = {Configuration["optio…
介绍 实现这个功能主要还是依赖过滤器 在Swagger中利用 IOperationFilter 操作来实现文件上传 与之前处理结合Idr4授权一样的处理方式,不同的是授权处理的是Security,而文件上传要处理的是Parameters,具体是IFormFile参数处理 IFormFile 在  Microsoft.AspNetCore.Http 命名空间下 怎么来处理呢? options.OperationFilter<IdentityServer4OAuth2OperationFilter>…
问题:action中返回匿名对象时,swagger只能按强类型生成返回值描述 解决办法:使用roslyn在内存中动态执行代码,使用json.net反序列化匿名对象,向swagger返回动态匿名对象 效果: Swaager在描述控制器的方法时,可以使用以下方法 <response code="400">如果id为空</response> 或 [ProducesResponseType(typeof(ResponseT<User>), 200)] Ope…
上一节我们讲到实体,仓储接口和仓储接口的实现需要遵循约定的命名规范,不仅是规范,而且为了依赖注入,现在我们实现仓储的依赖注入 在NetCore WebApi项目中新添加一个文件夹(Unit),当然你也可以直接放在根目录下面,关键是后期类增加了你会找对地方,看起来不是那么乱,添加一个RuntimeHelper 我先说一下实现仓储依赖注入的基本思路,就是通过反射获取所有的程序集,然后在程序集中找到 I+实体+Repository的接口和 实体+Repository的实现类,然后在依赖注入容器中注册他…
初衷是想用dapper搭建一个高性能的架构,因为dapper操作数据库的效率很高 1.VS创建一个NetCore WebApi的框架,然后解决方案添加一个NetStandard的类库 整个解决方案如图所示 2.根据DDD架构的思想类库完全充当一个仓储的功能,因为服务层本来就是提供接口的,所以这里不再构建Application层,直接使用WebApi充当Application层,由于底层使用的是Dapper,所以数据层直接和仓储层合并了,要是使用EntityFramework,需要再构建一个Ent…
一.创建一个Asp.NetCore WebApi 程序(话不多说) 二.发布 三.配置IIS 程序池中选中网站的程序池 ——基本设置 浏览网站——浏览器 域名后面输入api/values 四.错误处理 1)如果是500.19 是 dotnet-hosting-2.2.1-win.exe 没装 去官网下一个与api netcore 版本一致的就可以. 2)如果是500的话,服务器错误,发布的时候选release…
这几天闲着的时候在linux上部署了一下netcore webapi,下面就纪要一下这个过程. 中间遇到不少的坑,心里都是泪啊. 话不多说,开始干活. ------------------------------------------------------------------------ 第一步,你得先创建一个netcore的接口,这个我就简单创建一个接口. 关于开发工具,我用的是vs2017,当然最新的vs2019也出来了,你可以用新的,都没关系. 开始选择创建项目,如图所示,这个入门…
上一章,我们讲了在linux上安装netcore环境,以及让netcore在linux上运行. 这一章我们开始讲在linux上配置nginx,以及让nginx反向代理我们的webapi. 什么nginx??? Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. 在高连接并发的情况下,Nginx是Apache服务器不错的替代品,而且现在越来越多的公司都开始用n…