随笔分类 - 01.3-ASP.NET Core
摘要:Intro ASP.NET 8 中引入了 IExceptionHandler,我们可以针对某一类的 exception 做单独的处理, 可以将不同类型的异常有不一样的逻辑做不同的处理,异常处理可以变得更加灵活 Sample 来看一个简单的示例: 我们可以实现 IExceptionHandler 来处
阅读全文
摘要:背景 在三方接口对接中,偶尔会遇到需要传递证书的情况,这种方式其实是在SSL握手过程中会同时验证客户端和服务器的身份,这就是我们常说的 双向认证。 双向认证需要服务器和客户端提供身份认证,只能是服务器允许的客户方能访问,安全性相对于要高一些。 下面老黄用几个小例子来演示一下双向认证的简单应用。 准备
阅读全文
摘要:介绍 在 ASP.NET Core MVC 应用程序中调用AddMvc()或AddMvcCore()添加的标准服务之一是 ApiExplorer。通过调用services.AddApiExplorer()将 ApiExplorer 服务添加到您的应用程序中 ApiExplorer 功能是Micros
阅读全文
摘要:`Swashbuckle.AspNetCore.Annotations`包括一组可应用于Controller、Action和Model的自定义属性,以丰富生成的 Swagger #### 安装Nuget ``` install-package Swashbuckle.AspNetCore.Annot
阅读全文
摘要:生成器将在单个 Swagger 文档中包含所有 API 操作。但是,如有必要,您可以创建多个文档。例如,您可能希望每个 API 版本都有一个单独的文档。 案例 添加服务、中间件(v1、v2) builder.Services.AddSwaggerGen(options => { //定义多个Swag
阅读全文
摘要:什么是Swagger/OpenAPI Swagger是为帮助我们生成webapi文档的工具,可以直接从您的路由、控制器和模型生成漂亮的 API 文档 Swagger 是一个与语言无关的规范,用于描述 REST API。Swagger 项目已捐赠给 OpenAPI 计划,现在它被称为OpenAPI。
阅读全文
摘要:这篇文章主要介绍了在Asp.Net Core中使用ModelConvention实现全局过滤器隔离,这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器 IActionFilter
阅读全文
摘要:统一结果类封装 首先如果让返回的结果格式统一,就得有一个统一的包装类去包装所有的返回结果,因为返回的具体数据虽然格式一致,但是具体的值的类型是不确定的,因此我们这里需要定义个泛型类。 定义包装类 上面我们也说了关于定义泛型类的优势,这里就话不多说来直接封装一个结果返回的包装类 public clas
阅读全文
摘要:内容协商 客户端再请求头Accept字段中指定什么样的MIME类型,WebApi服务端就返回对应的MIME类型(响应头的中Content-Type就是Accept中指定的MIME类型)。 而现实状况是,Web API服务端能返回什么MIME类型的响应类型取决于有没有对应这个MIME类型的MediaT
阅读全文
摘要:API 版本控制可以采用不同的方式进行控制: (1)在 URL 中追加版本或作为查询字符串参数, (2)通过自定义标头和通过接受标头 在这篇文章中, 让我们来看看如何支持多个版本的 ASP.NET Core Web API。 一、创建asp.net core webapi 项目,引用NuGet包:I
阅读全文
摘要:Refit可以进行强类型的客户端调用 Refit 是一个类型安全的 REST 开源库,是一套基于 RESTful 架构的 .NET 客户端实现,内部使用 HttpClient 类封装,可通过 Refit 更加简单安全地访问 Web API 接口,要使用 Refit 框架,只需要在项目中通过 NuGe
阅读全文
摘要:在现代Web开发中,文件上传和下载是常见的功能需求。然而,随着文件大小的增加或网络环境的变化,传统的文件上传和下载方式可能会遇到性能瓶颈或用户体验问题。本文将深入讲解如何在AspNetCore中实现大文件上传、分块上传、断点续传以及高效的文件下载。 大文件上传 传统方式的问题 传统的文件上传方式通常
阅读全文
摘要:在现代Web应用中,实时数据传输和高效的数据流处理变得越来越重要。AspNetCore 提供了多种流式响应机制,以满足不同场景下的需求。 在使用ChatGpt,deepseek的适合有没有想过ai的逐字显示回答是怎么实现的,下面将介绍三种主要的流式响应来实现此功能。 Server-Sent Even
阅读全文
摘要:过滤器接口 授权过滤器:IAuthorizationFilter、IAsyncAuthorizationFilter(AuthorizeFilter) 通常用于验证请求合法性 资源过滤器:IResourceFilter、IAsyncResourceFilter 适合做缓存 Action过滤器:IAc
阅读全文
摘要:Action返回类型 特定类型 返回类型是特定类型,状态码是200,如果想返回其他的HTTP状态码类型,只能设置ResponseStatusCode,不优雅 public Person Person1([FromQuery] int id = 1) { if (id != 1) { Response
阅读全文
摘要:模型绑定 什么是模型绑定?简单说就是将HTTP请求参数绑定到程序方法入参上,该变量可以是简单类型,也可以是复杂类。 绑定源 所谓绑定源,是指用于模型绑定的值来源。 [FromQuery]:从Url的查询字符串中获取值。查询字符串就是Url中问号(?)后面拼接的参数 [FromRoute]:从路由数据
阅读全文
摘要:REST REST全称是Representational State Transfer 表述性状态传递。REST可能是现在最流行的一种Web API。 REST的核心就是资源,一个资源就是可以被标识的实体,它有名称和地址。 REST API就是把数据以资源的形式暴露出来,并使用标准的HTTP方法来代
阅读全文
摘要:介绍 WebAPI用来开发系统间接口的技术,基于HTTP协议,返回默认是json格式。比wcf简单 更通用,更轻量级,更省流量(json格式); webapi默认路由机制是通过http请求类型匹配Action(REST风格),而MVC的默认路由机制是通过url匹配Action。 可以修改webapi
阅读全文

浙公网安备 33010602011771号