
ASP.NET Core Web API
文章平均质量分 74
ASP.NET Core 支持使用 C# 创建 RESTful 服务,也称为 Web API。 若要处理请求,Web API 使用控制器。 Web API 中的 控制器 是派生自 ControllerBase 的类。
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
基于.net 6的FluentValidation高级用法和配置
string.WithMessage("邮箱必须以 @example.com 结尾");在intRuleFor(age => age).GreaterThan(18).WithMessage("年龄必须大于18");然后在里使用} }在Program.cs里注册int默认情况下,验证失败会返回,如果想修改返回格式,可以使用在Program.csMessage = "请求参数错误",});基本验证NotEmpty()Length()等。自定义验证:创建并使用Must()原创 2025-03-25 22:28:23 · 514 阅读 · 0 评论 -
ASP.NET Core 中自定义中间件
在中,自定义中间件,只需要定义一个包含方法的普通类,并在Program.cs中通过进行注册。原创 2025-03-06 01:09:27 · 228 阅读 · 0 评论 -
ASP .NET Core 中的 Api Key 身份验证之三【中间件】
这种方式简单直接,适用于小型项目或内网 API。但对于敏感数据传输,建议搭配HTTPS和更高级的认证机制(如 JWT 或 OAuth2)。原创 2025-03-06 01:08:58 · 424 阅读 · 0 评论 -
ASP .NET Core 中的 Api Key 身份验证之二【AuthenticationHandler】
在 ASP.NET Core 中实现 API Key 身份验证可以通过自定义中间件或来完成。原创 2025-03-06 01:08:41 · 214 阅读 · 0 评论 -
ASP .NET Core 中的 Api Key 身份验证之一【IAuthorizationFilter】
在 ASP.NET Core 中,可以使用来实现 API Key 身份验证。这种方式适用于更细粒度的身份验证控制,比如只对特定的 Controller 或 Action 进行 API Key 认证。新建一个类,实现接口。为了方便使用,可以创建一个的特性。在在里面使用进行 API Key 认证。在Program.cs确保被正确注入。原创 2025-03-06 01:08:27 · 199 阅读 · 0 评论 -
ASP.NET Core中间件(Middleware)和过滤器(Filter)的区别
都可以在请求处理过程中执行逻辑,但它们的作用范围、执行阶段和使用场景有所不同。原创 2025-03-06 01:07:24 · 919 阅读 · 0 评论 -
基于 .NET 6 + YARP 的多种应用场景
在微服务架构中,我们可以使用 YARP 作为 API 网关,将不同的 API 路由到对应的服务,并提供统一的入口。YARP (Yet Another Reverse Proxy) 作为一个高度可定制的反向代理,不仅可以用于。YARP 是一个强大的反向代理解决方案,适用于现代微服务架构 🚀。YARP 会自动转发到正确的服务,实现 API 聚合。然后,YARP 代理会自动支持新的后端地址。YARP 提供不同的负载均衡策略,例如。,可以在 YARP 中添加中间件。,你会看到返回的服务器端口不同。原创 2025-03-05 20:48:20 · 472 阅读 · 0 评论 -
基于 .NET 6 使用 YARP (Yet Another Reverse Proxy) 进行负载均衡
如果需要动态管理后端,可以使用 Consul 或 etcd 作为服务注册中心,让 YARP 自动发现新的服务实例。首先,我们需要创建多个实例的 ASP.NET Core API 服务,它们将由 YARP 代理进行负载均衡。进行负载均衡,实现 ASP.NET Core API 的水平扩展的示例,包括详细的配置步骤和代码示例。接下来,我们创建一个 YARP 代理应用程序,它会将请求负载均衡到上述 API 服务实例。的负载均衡架构,实现了 ASP.NET Core API 的水平扩展。原创 2025-03-05 20:47:43 · 395 阅读 · 0 评论 -
.net高并发 .net core处理高并发
使用 ngx_http_limit_req_module 模块可以 限制某一 IP 在一段时间内对服务器发起请求的连接数,该模块为内置模块。对于提供下载的网站,肯定是要进行流量控制的。Nginx 通过 core模块的 limit_rate 等指令可以做到限流的目的。通过 limit_zone 模块来达到限制用户的连接数的目的,即限制同一用户 IP 地址的并发连接数。(3)core 模块提供 - limit_rate 限制同一 IP 流量。模块 - 限制同一 IP 某段时间的访问量;秒杀主要由两步逻辑组成。转载 2025-02-26 22:58:08 · 60 阅读 · 0 评论 -
CSRedisCore基本使用示例
是一个高效且易用的 Redis 客户端库,在 .NET Core 项目中可以方便地使用它进行 Redis 操作。通过依赖注入和配置连接池,它可以轻松扩展到高并发和大规模的应用场景中。原创 2024-11-14 10:18:54 · 1218 阅读 · 0 评论 -
C#实现一个带过期时间的积分系统的完整解决方案
需要任何修改或有其他需求都可以告诉我。原创 2024-11-08 14:37:32 · 409 阅读 · 0 评论 -
NET9中使用Scrutor使服务装饰变得简单
/ 模拟发送消息的逻辑message// 模拟发送消息的逻辑 Console . WriteLine($"Sending email: {} }在上面的代码中,是服务接口,是该接口的一个实现,用于发送电子邮件。Scrutor 的Decorate方法简化了装饰器模式的实现,通过这种方式可以在不更改服务原始代码的情况下,添加额外的行为(如日志记录、性能监控等),非常适合需要动态扩展的应用场景。原创 2024-11-02 01:06:20 · 965 阅读 · 0 评论 -
ASP.NET Core Web API中实现监控
要在ASP.NET Core Web API中实现监控,可以使用一些流行的开源项目。这些工具可以帮助你监控API的性能、请求、响应时间、错误率等。Serilog。原创 2024-06-05 16:37:33 · 1665 阅读 · 0 评论 -
APM(应用性能管理)之Elastic APM和Datadog APM
APM(应用性能管理)工具可以帮助你监控和优化 ASP.NET Core Web API 的性能。这些工具通常提供详细的性能分析、分布式追踪、错误报告等功能。原创 2024-06-05 16:37:01 · 1693 阅读 · 0 评论 -
ASP.NET Core Web API 项目中集成 Opserver 进行监控
Opserver 是由 Stack Exchange 开发的开源监控仪表盘,用于监控不同的系统和服务。它提供了一个统一的界面来查看和管理系统的健康状况和性能数据。Opserver 支持多种监控数据源,包括 SQL Server、Redis、ElasticSearch 等。原创 2024-06-05 16:26:16 · 550 阅读 · 0 评论 -
ASP.NET Core WebAPI中,创建非RESTful风格的和RESTful风格的Controller一些区别
有时候,你可能想要在 API 中定义一些非标准的操作,这也是非 RESTful 风格的一个例子。// 非 RESTful 风格的 Controller,使用自定义操作[HttpPost][Route[HttpPost][Route在这个例子中,我们有一个,它有两个自定义的动作方法和SendEmail,执行特定的操作。在 ASP.NET Core WebAPI 中,你可以根据需求选择 RESTful 风格或非 RESTful 风格来设计 API。原创 2024-04-21 14:43:40 · 1440 阅读 · 0 评论 -
OpenID Connect 和 OAuth2.0
signature:可以通过JWS签名,保证数据完整,没有被篡改,返回响应中的header包含了alg(加密方式,如HS256)利用服务端的密钥secret通过哈希256(SHA256)HMACSHA256(base64UrlEncode(header)+ “.” + base64UrlEncode(payload),secret(公钥)) 加密取最左128bit,通过jwt网站了解 https://jwt.io/用户的 SSO 体验是通过将 ID 令牌从授权服务器传递到客户端来实现的。转载 2023-11-04 18:17:40 · 669 阅读 · 0 评论 -
MediatR使用入门
MediatR 是一个低野心的库,试图解决一个简单的问题——将进程内消息发送与处理消息解耦。转载 2023-11-04 05:32:25 · 721 阅读 · 0 评论 -
.Net6 Web Core API --- Autofac -- AOP
/// 自定义 方法拦截器 ///转载 2023-08-23 15:22:12 · 385 阅读 · 0 评论 -
使用UseHttpLogging中间件的HTTP 日志[.NET6 功能]
我们可以通过显式注册“”服务来自定义 HTTP 日志记录中的一些选项。所以这里我们可以明确配置像“需要记录哪些信息”、“限制请求和响应的大小”等。});这里配置为仅记录 HTTP 响应。翻译 2023-08-23 15:08:50 · 714 阅读 · 0 评论 -
FluentValidation使用示例
是一个 .NET 平台下的验证库,用于验证对象的属性是否符合预期的规则。它提供了一种简洁的方式来编写验证规则,支持链式编程,可以轻松地构建复杂的验证逻辑。提供了一种简洁、灵活的方式来验证对象,可以帮助我们轻松地构建复杂的验证逻辑。对象,其中包含验证结果。如果验证不通过,我们可以通过遍历。也进行了更新,提供了更多的功能和改进。接下来,我们创建一个验证器类,继承自。在上面的代码中,我们创建了一个。等方法来定义验证规则。方法可以设置错误信息。在 .NET 6 中,在验证器中,我们使用。验证器对其进行验证。原创 2023-05-10 18:44:13 · 704 阅读 · 0 评论 -
ASP.NET Core抽象类中的依赖注入
在我的 ASP.NET Core 2 项目中,我创建了继承。翻译 2023-02-02 19:29:07 · 1733 阅读 · 0 评论 -
在 ASP.NET Core 中使用一个接口的多个实现
如何在 ASP.NET Core 中向 IoC 容器注册接口的多个实现并在运行时检索特定服务ASP.NET Core 中对依赖注入的内置支持非常棒。但是,在 ASP.NET Core 中使用依赖注入时处理接口的多个实现有点棘手。在本文中,我将向您展示如何从 ASP.NET Core 中的此类实现中动态选择服务。翻译 2023-01-20 14:10:14 · 1623 阅读 · 1 评论 -
如何在 ASP.NET Core DI 中注册具有多个接口的服务
在本文中,我描述了如何在 ASP.NET Core 中使用的容器中注册具有多个公共接口的具体类。使用这种方法,您将能够使用具体类实现的任何接口来检索具体类。然后您将能够注入或,您将收到相同的实例。以特定方式注册以避免意外的生命周期问题很重要,例如有两个单例实例!在这篇文章中,我简要概述了 ASP.NET Core 中的 DI 容器及其与第三方容器相比的一些限制。然后,我将描述将对多个接口的请求“转发”到具体类型的概念,以及如何使用 ASP.NET Core DI 容器实现此目的。翻译 2023-01-18 22:40:59 · 769 阅读 · 0 评论 -
使用 ASP.NET Core Microsoft.Extensions.DependencyInjection 注册部分封闭的泛型类型
,这是 .NET Core 的 DI 容器不支持的。对于泛型类型,.NET Core 容器是一个非常简约、简单的实现。在调试时,我尝试只注册实现,而不注册接口+实现,然后那个异常就消失了。但如果可能的话,我想注入接口,而不是实现。如果这导致无法维护的组合根,您应该选择一个不同的容器。我也在 SO 上寻找类似的问题和问题,但它们并不真正相关,因为它们是关于通用实现的,而这是一个具体的实现。1.1.1 的 ASP.NET Core 1.1.2 Web 项目中,我正在尝试注册一个通用的。验证器及其实现和接口。翻译 2023-01-06 19:21:06 · 495 阅读 · 0 评论 -
ASP.Net Core中泛型类依赖注入出错
期望可以将指定的第二种类型的实例分配给对第一种类型的引用。您需要指定隐式类型并以一致的方式进行。是抽象的,您无法创建它的实例。您不能像这样使用泛型类型。翻译 2023-01-06 01:42:42 · 1953 阅读 · 0 评论 -
Asp.net core中使用具有多种类型<T,T>的泛型Repository
无论如何都无法实例化抽象类,这是错误消息的根本原因,您应该注册。- 因此您注册开放泛型类型的机会为零,只是期望。- 这就是首先让它通用的全部意义。- 这是毫无意义的,因为。因为它没有我认为您需要的。第一个与您的问题无关,但。知道您所追求的实际接口。成员,它可以访问基类。并在您需要的地方请求。翻译 2023-01-05 20:36:04 · 506 阅读 · 0 评论 -
Asp.Net Core中JWT刷新Token解决方案
Asp.Net Core中JWT刷新Token解决方案转载 2022-12-23 01:57:48 · 3505 阅读 · 0 评论 -
Asp.Net Core 3.1 获取不到Post、Put请求的内容 System.NotSupportedException Specified method is not supported
但这段代码 在和(没错特地升级过) 都读不到、获取不到Post。转载 2022-12-18 23:40:58 · 2319 阅读 · 0 评论 -
Asp.Net Core使用Scaffold-DbContext反向项目生成实体类
【代码】Asp.Net Core使用Scaffold-DbContext反向项目生成实体类。转载 2022-12-13 15:58:13 · 866 阅读 · 0 评论 -
.net 使用Docker开发
NET多年以前已经开始支持Docker,但由于国内.net现状,生产过程中几乎用不到docker支持,趁着有点时间捣鼓下~。转载 2022-12-12 14:55:44 · 660 阅读 · 0 评论 -
AspnetCore Docker部署https
具体可参考考 [在本地启用 HTTPS 在 Docker 上运行 IdentityServer4 时保护 API](https://mjarosie.github.io/dev/2020/09/24/runningidentityserver4-on-docker-with-https.html)在本机Ubuntu/Windows利用。项目证书(apsnetcore认。如何设置远程访问,进入容器。,修改root的host。PowerShell脚本。容器中,并让容器信任该。证书(Ubuntu认。转载 2022-10-29 15:57:08 · 597 阅读 · 0 评论 -
Docker实践之.NET6基于Dockerfile构建Docker镜像播
前面都在说Docker镜像,那么Docker镜像是如何构建的呢?今天我们就来学习一下,如何基于Dockerfile来构建Docker镜像。转载 2022-10-25 15:06:24 · 797 阅读 · 0 评论 -
ASP.NET Core 认证与授权[3]:OAuth & OpenID Connect认证
本文简单介绍了OAuth和的基本概念以及它们在 ASP.NET Core 中作为认证客户端的实现,如果我们只需要 “访问第三方资源” 的授权,使用OAuth认证即可。而在我们需要对自己的多个应用进行统一的身份验证时,应该使用来实现,不仅包含身份验证,还包含OAuth的授权协议,是更加推荐的做法。JWTBearer,也是在现代Web应用中比较流行的认证方式。转载 2022-10-24 14:01:39 · 5099 阅读 · 0 评论 -
ASP.NET Core 认证与授权[2]:Cookie认证
Cookie认证是一种本地认证方式,也是最为简单,最为常用的认证方式。其认证逻辑也很简单,总结一下就是获取请求中指定的Cookie,解密成功后,反序列生成对象,并进行一系列的验证,而登录方法与之对应:根据用户信息创建对象,并加密后序列化,写入到Cookie中。OAuth和。转载 2022-10-24 13:24:17 · 1006 阅读 · 0 评论 -
AspnetCore使用RabbitMQ
类似于EF core 的作用,让开发者更容易与等消息代理系统交互(等同于EF core 与MySQL、MSSQL、Sqlite的关系)。当然,我们也可以引用RabbitMQ等提供的原生Client支持。长远来看,如果想让系统更具兼容性(面对抽象接口开发),更为合适。转载 2022-12-08 20:33:49 · 617 阅读 · 0 评论 -
.Net Core WebAPI+Dapper+MySql+CentOS7+Nginx+windows+IIS 部署例子
新建Asp.Net Core 的WebAPI项目,转载 2022-10-19 10:00:00 · 538 阅读 · 0 评论 -
.net core with 微服务 - Seq 日志聚合工具
上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现。那么本次我们讲会演示如何做日志聚合。日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众的日志聚合工具 - Seq 。日志聚合日志是我们写程序离不开的一个东西。在我们排查问题的时候日志就是我们的救命稻草。我们的每个服务都在不停的生产日志。但是实施微服务后,如果按照传统的写本地文件的日志方案,显然会面临跟修改配置一样麻烦的境地。不同的日志分散在各个服务器、容器内,这种情况下查日志简直是生不如死。转载 2022-05-17 14:02:58 · 888 阅读 · 0 评论 -
.net core with 微服务 Consul 服务发现注册
上一次我们介绍了 Ocelot 网关的基本用法。这次我们开始介绍服务注册发现组件 Consul 的简单使用方法。服务注册发现首先先让我们回顾下服务注册发现的概念。在实施微服务之后,我们的调用都变成了服务间的调用。服务间调用需要知道IP、端口等信息。再没有微服务之前,我们的调用信息一般都是写死在调用方的配置文件里(当然这话不绝对,有些公司会把这些信息写到数据库等公共的地方,以方便维护)。又由于业务的复杂,每个服务可能依赖N个其他服务,如果某个服务的IP,端口等信息发生变更,那么所有依赖该服务的服务的配置转载 2022-05-17 13:39:11 · 419 阅读 · 0 评论 -
.net core with 微服务 - 微服务架构图
上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务)。介绍了微服务的来龙去脉,一些基础性的概念。有大佬在评论区指出说这根本不是微服务。由于本人的能力有限,大概也只能理解到这个层次。先不管它到底是不是微服务吧,既然开篇了,那就硬着头皮把这个系列写完。我想不管是对自己对看官多少还是有点帮助的。架构图这篇文章将从一张架构图开始说起(开局一张图,内容全靠凑🤣)。很多介绍微服务架构的文章画的架构图比这张图复杂的多。我根据自己的理解与实践修改跟精简了一下。上次评论区说.N转载 2022-05-15 22:43:40 · 1370 阅读 · 0 评论