ASP.NET Core Web API
文章平均质量分 74
ASP.NET Core 支持使用 C# 创建 RESTful 服务,也称为 Web API。 若要处理请求,Web API 使用控制器。 Web API 中的 控制器 是派生自 ControllerBase 的类。
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
C#实现一个带过期时间的积分系统的完整解决方案
需要任何修改或有其他需求都可以告诉我。原创 2024-11-08 14:37:32 · 318 阅读 · 0 评论 -
NET9中使用Scrutor使服务装饰变得简单
/ 模拟发送消息的逻辑message// 模拟发送消息的逻辑 Console . WriteLine($"Sending email: {} }在上面的代码中,是服务接口,是该接口的一个实现,用于发送电子邮件。Scrutor 的Decorate方法简化了装饰器模式的实现,通过这种方式可以在不更改服务原始代码的情况下,添加额外的行为(如日志记录、性能监控等),非常适合需要动态扩展的应用场景。原创 2024-11-02 01:06:20 · 879 阅读 · 0 评论 -
ASP.NET Core Web API中实现监控
要在ASP.NET Core Web API中实现监控,可以使用一些流行的开源项目。这些工具可以帮助你监控API的性能、请求、响应时间、错误率等。Serilog。原创 2024-06-05 16:37:33 · 1523 阅读 · 0 评论 -
APM(应用性能管理)之Elastic APM和Datadog APM
APM(应用性能管理)工具可以帮助你监控和优化 ASP.NET Core Web API 的性能。这些工具通常提供详细的性能分析、分布式追踪、错误报告等功能。原创 2024-06-05 16:37:01 · 1521 阅读 · 0 评论 -
ASP.NET Core Web API 项目中集成 Opserver 进行监控
Opserver 是由 Stack Exchange 开发的开源监控仪表盘,用于监控不同的系统和服务。它提供了一个统一的界面来查看和管理系统的健康状况和性能数据。Opserver 支持多种监控数据源,包括 SQL Server、Redis、ElasticSearch 等。原创 2024-06-05 16:26:16 · 477 阅读 · 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 · 1308 阅读 · 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 · 620 阅读 · 0 评论 -
MediatR使用入门
MediatR 是一个低野心的库,试图解决一个简单的问题——将进程内消息发送与处理消息解耦。转载 2023-11-04 05:32:25 · 689 阅读 · 0 评论 -
.Net6 Web Core API --- Autofac -- AOP
/// 自定义 方法拦截器 ///转载 2023-08-23 15:22:12 · 347 阅读 · 0 评论 -
使用UseHttpLogging中间件的HTTP 日志[.NET6 功能]
我们可以通过显式注册“”服务来自定义 HTTP 日志记录中的一些选项。所以这里我们可以明确配置像“需要记录哪些信息”、“限制请求和响应的大小”等。});这里配置为仅记录 HTTP 响应。翻译 2023-08-23 15:08:50 · 606 阅读 · 0 评论 -
FluentValidation使用示例
是一个 .NET 平台下的验证库,用于验证对象的属性是否符合预期的规则。它提供了一种简洁的方式来编写验证规则,支持链式编程,可以轻松地构建复杂的验证逻辑。提供了一种简洁、灵活的方式来验证对象,可以帮助我们轻松地构建复杂的验证逻辑。对象,其中包含验证结果。如果验证不通过,我们可以通过遍历。也进行了更新,提供了更多的功能和改进。接下来,我们创建一个验证器类,继承自。在上面的代码中,我们创建了一个。等方法来定义验证规则。方法可以设置错误信息。在 .NET 6 中,在验证器中,我们使用。验证器对其进行验证。原创 2023-05-10 18:44:13 · 634 阅读 · 0 评论 -
ASP.NET Core抽象类中的依赖注入
在我的 ASP.NET Core 2 项目中,我创建了继承。翻译 2023-02-02 19:29:07 · 1672 阅读 · 0 评论 -
在 ASP.NET Core 中使用一个接口的多个实现
如何在 ASP.NET Core 中向 IoC 容器注册接口的多个实现并在运行时检索特定服务ASP.NET Core 中对依赖注入的内置支持非常棒。但是,在 ASP.NET Core 中使用依赖注入时处理接口的多个实现有点棘手。在本文中,我将向您展示如何从 ASP.NET Core 中的此类实现中动态选择服务。翻译 2023-01-20 14:10:14 · 1499 阅读 · 1 评论 -
如何在 ASP.NET Core DI 中注册具有多个接口的服务
在本文中,我描述了如何在 ASP.NET Core 中使用的容器中注册具有多个公共接口的具体类。使用这种方法,您将能够使用具体类实现的任何接口来检索具体类。然后您将能够注入或,您将收到相同的实例。以特定方式注册以避免意外的生命周期问题很重要,例如有两个单例实例!在这篇文章中,我简要概述了 ASP.NET Core 中的 DI 容器及其与第三方容器相比的一些限制。然后,我将描述将对多个接口的请求“转发”到具体类型的概念,以及如何使用 ASP.NET Core DI 容器实现此目的。翻译 2023-01-18 22:40:59 · 699 阅读 · 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 · 453 阅读 · 0 评论 -
ASP.Net Core中泛型类依赖注入出错
期望可以将指定的第二种类型的实例分配给对第一种类型的引用。您需要指定隐式类型并以一致的方式进行。是抽象的,您无法创建它的实例。您不能像这样使用泛型类型。翻译 2023-01-06 01:42:42 · 1718 阅读 · 0 评论 -
Asp.net core中使用具有多种类型<T,T>的泛型Repository
无论如何都无法实例化抽象类,这是错误消息的根本原因,您应该注册。- 因此您注册开放泛型类型的机会为零,只是期望。- 这就是首先让它通用的全部意义。- 这是毫无意义的,因为。因为它没有我认为您需要的。第一个与您的问题无关,但。知道您所追求的实际接口。成员,它可以访问基类。并在您需要的地方请求。翻译 2023-01-05 20:36:04 · 431 阅读 · 0 评论 -
Asp.Net Core中JWT刷新Token解决方案
Asp.Net Core中JWT刷新Token解决方案转载 2022-12-23 01:57:48 · 3362 阅读 · 0 评论 -
Asp.Net Core 3.1 获取不到Post、Put请求的内容 System.NotSupportedException Specified method is not supported
但这段代码 在和(没错特地升级过) 都读不到、获取不到Post。转载 2022-12-18 23:40:58 · 2231 阅读 · 0 评论 -
Asp.Net Core使用Scaffold-DbContext反向项目生成实体类
【代码】Asp.Net Core使用Scaffold-DbContext反向项目生成实体类。转载 2022-12-13 15:58:13 · 790 阅读 · 0 评论 -
.net 使用Docker开发
NET多年以前已经开始支持Docker,但由于国内.net现状,生产过程中几乎用不到docker支持,趁着有点时间捣鼓下~。转载 2022-12-12 14:55:44 · 597 阅读 · 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 · 551 阅读 · 0 评论 -
Docker实践之.NET6基于Dockerfile构建Docker镜像播
前面都在说Docker镜像,那么Docker镜像是如何构建的呢?今天我们就来学习一下,如何基于Dockerfile来构建Docker镜像。转载 2022-10-25 15:06:24 · 736 阅读 · 0 评论 -
ASP.NET Core 认证与授权[3]:OAuth & OpenID Connect认证
本文简单介绍了OAuth和的基本概念以及它们在 ASP.NET Core 中作为认证客户端的实现,如果我们只需要 “访问第三方资源” 的授权,使用OAuth认证即可。而在我们需要对自己的多个应用进行统一的身份验证时,应该使用来实现,不仅包含身份验证,还包含OAuth的授权协议,是更加推荐的做法。JWTBearer,也是在现代Web应用中比较流行的认证方式。转载 2022-10-24 14:01:39 · 4897 阅读 · 0 评论 -
ASP.NET Core 认证与授权[2]:Cookie认证
Cookie认证是一种本地认证方式,也是最为简单,最为常用的认证方式。其认证逻辑也很简单,总结一下就是获取请求中指定的Cookie,解密成功后,反序列生成对象,并进行一系列的验证,而登录方法与之对应:根据用户信息创建对象,并加密后序列化,写入到Cookie中。OAuth和。转载 2022-10-24 13:24:17 · 943 阅读 · 0 评论 -
AspnetCore使用RabbitMQ
类似于EF core 的作用,让开发者更容易与等消息代理系统交互(等同于EF core 与MySQL、MSSQL、Sqlite的关系)。当然,我们也可以引用RabbitMQ等提供的原生Client支持。长远来看,如果想让系统更具兼容性(面对抽象接口开发),更为合适。转载 2022-12-08 20:33:49 · 576 阅读 · 0 评论 -
.Net Core WebAPI+Dapper+MySql+CentOS7+Nginx+windows+IIS 部署例子
新建Asp.Net Core 的WebAPI项目,转载 2022-10-19 10:00:00 · 502 阅读 · 0 评论 -
.net core with 微服务 - Seq 日志聚合工具
上一次我们介绍并演示了如果使用 Consul 做为我们微服务的注册中心,来实现服务的注册与发现。那么本次我们讲会演示如何做日志聚合。日志聚合比较常用的有 ELK 等,但是这次我想要介绍的是一款比较小众的日志聚合工具 - Seq 。日志聚合日志是我们写程序离不开的一个东西。在我们排查问题的时候日志就是我们的救命稻草。我们的每个服务都在不停的生产日志。但是实施微服务后,如果按照传统的写本地文件的日志方案,显然会面临跟修改配置一样麻烦的境地。不同的日志分散在各个服务器、容器内,这种情况下查日志简直是生不如死。转载 2022-05-17 14:02:58 · 827 阅读 · 0 评论 -
.net core with 微服务 Consul 服务发现注册
上一次我们介绍了 Ocelot 网关的基本用法。这次我们开始介绍服务注册发现组件 Consul 的简单使用方法。服务注册发现首先先让我们回顾下服务注册发现的概念。在实施微服务之后,我们的调用都变成了服务间的调用。服务间调用需要知道IP、端口等信息。再没有微服务之前,我们的调用信息一般都是写死在调用方的配置文件里(当然这话不绝对,有些公司会把这些信息写到数据库等公共的地方,以方便维护)。又由于业务的复杂,每个服务可能依赖N个其他服务,如果某个服务的IP,端口等信息发生变更,那么所有依赖该服务的服务的配置转载 2022-05-17 13:39:11 · 393 阅读 · 0 评论 -
.net core with 微服务 - 微服务架构图
上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务)。介绍了微服务的来龙去脉,一些基础性的概念。有大佬在评论区指出说这根本不是微服务。由于本人的能力有限,大概也只能理解到这个层次。先不管它到底是不是微服务吧,既然开篇了,那就硬着头皮把这个系列写完。我想不管是对自己对看官多少还是有点帮助的。架构图这篇文章将从一张架构图开始说起(开局一张图,内容全靠凑🤣)。很多介绍微服务架构的文章画的架构图比这张图复杂的多。我根据自己的理解与实践修改跟精简了一下。上次评论区说.N转载 2022-05-15 22:43:40 · 1305 阅读 · 0 评论 -
.net core with 微服务 - 什么是微服务
微服务是这几年最流行的架构,说起架构不提微服务都不好意思跟人家打招呼。最近想要再梳理一下关于微服务的知识,并且结合本人的一些实践经验来做一些总结与分享。前面会分享一些概念性的东西,后面也会使用.net来实践,一步步完成一个简单的微服务架构的小demo。什么是微服务其实微服务并没有统一的标准定义。微服务是一种软件架构的风格。它首先由大神martin fowler提出,2014年3月25号在他的博客上发表了一篇博客来描述了这种微服务的架构。原文地址(https://www.martinfowler.com/转载 2022-05-15 22:42:24 · 320 阅读 · 0 评论 -
ASP.NET Core 因为 Nginx 配置 Connection 为 Upgrade 导致 Kestrel 返回 400 错误
我今天遇到了一个坑,我的服务器在经过了 Nginx 之后,发送的 POST 请求,如果请求里面有 Body 内容,那么 Kestrel 将会返回 400 错误,同时也不会经过任何的中间件在 HTTP 的标准里面,在 HTTP 协议提供了一种特殊的机制,这一机制允许将一个已建立的连接升级成新的、不相容的协议。由客户端发起给服务端询问可以服务器端选择是否要升级到新协议,这个机制可以做到如客户端使用HTTP/1.1去连接服务器端,询问服务器端是否能升级到HTTP2甚至是WebSockets协议。而这个机制的做法转载 2022-05-08 13:19:30 · 918 阅读 · 0 评论 -
.NETCORE WebApi搭建
最近一直有小項目用到 WebApi現在整理一下思路,写一份說明出來,让后来人不走弯路…1. 第一步 新建項目打开VS2019,选择新建项目,选择ASP.NET Core Web 应用程式设置好专案名称创建API 应用程式2.第二步 Nuget 所需包准备IdentityServer4IdentityServer4.AccessTokenValidationWebApiClient.JIT关于这三个包这里不做过多叙述,这里先负责搭建运行,如有必要后期单独说明3.第三步 i转载 2022-05-02 17:41:52 · 1141 阅读 · 0 评论 -
Vue与.net Core 如何接收List<T>泛型参数
Vue Element-ui axios-post请求,axios默认请求提的Content-Type为application/json.net core后端接收参数有List<T>泛型参数,如何才能正确接收呢1、不能接收到的情况前端参数值/*请求参数值*/var data=[]data.push({ id:1, name:'aaa'})data.push({ id:2, name:'bbb'})data.push({ id:3, name:'cc.转载 2022-04-30 13:47:25 · 533 阅读 · 0 评论 -
ASP.NET Core 6 Minimal API
Intro微软在 ASP.NET 6 Preview 4 的介绍文章中介绍了即将到来的 ASP.NET Core 6 中的最小 API 的雏形,我们现在已经基本可以达到最小化 API 了雏形了,在 Preview 4 的时候就写了这个小示例,但是不够简洁,没有达到最简洁的代码,现在在 Preview 5 上尝试一下,感觉已经很简洁了,于是就想分享一下Sample-0在 Preview 4 的时候,示例是下面这样的:using System;using Microsoft.AspNetCore.Bu转载 2022-04-18 20:52:37 · 487 阅读 · 0 评论 -
.NET Core 使用 WebApiClient.JIT 调用第三方接口
WebApiClient.JIT :一个基于HttpClient的开源项目。您只需要定义c#接口并修改相关功能即可异步调用远程http接口的客户端库。nuget上搜索WebApiClient.JIT,net和core都支持作者的事例类using Demo.HttpClients;using Demo.HttpServices;using System;using System.Threading;using System.Threading.Tasks;using WebApiClient;转载 2022-04-15 15:46:45 · 1766 阅读 · 0 评论 -
在 ASP.NET Core WebAPI 中使用 JWT 验证
为了保护 WebAPI 仅提供合法的使用者存取,有很多机制可以做,透过 JWT (JSON Web Token) 便是其中一种方式,这篇示范如何使用官方所提供的 System.IdentityModel.Tokens.Jwt 扩充套件,处理呼叫 API 的来源是否为合法的使用者身分。顺道一提,要产生 JWT Token 有很多套件可以帮助开发者快速建立,JWT 这个 NuGet 套件就是其中一个,但这裡我使用官方所提供的 System.IdentityModel.Tokens.Jwt 扩充套件来处理,虽然转载 2022-04-04 01:29:34 · 1564 阅读 · 0 评论 -
HTTP的Content-type几种常见类型
一、是什么?是Http的实体首部字段,用于说明请求或返回的消息主体是用何种方式编码,在request header和response header里都存在。二、几个常用类型:1、application/x-www-form-urlencoded1)浏览器的原生form表单2) 提交的数据按照 key1=val1&key2=val2 的方式进行编码,key和val都进行了URL转码POST [http://www.example.com](http://www.example.com) H转载 2022-03-12 23:43:47 · 1424 阅读 · 0 评论 -
.Net Core WebAPI 基于Task的同步&异步编程
await 和 async异步的实质就是线程的切换(遇到await),同一请求下,异步和同步的执行时间是一样的,但有人说异步可以提高XXX性能,但具体是什么性能呢?又说不上来,其实就只提高并发量,并不能提升你应用程序处理的速度使用异步的目的是用尽量少的线程保证相同的并发量。线程的总数少了,线程切换消耗的资源就小了,相对来提供给客户任务的资源就多了,性能就在这里。CPU 在大量线程的情况下,20%的时间片在线程切换上,客户任务有80%的资源使用。减少了线程数,只有5%的时间片消耗在线程切换,客户任务转载 2022-03-12 00:14:12 · 3496 阅读 · 0 评论 -
ASP.NET (Core)WebApi接收参数
一、ASP.NET (Core)WebApi参数传递实操演练1、什么是contentType和dataType?$.ajax contentType 和 dataType , contentType 主要设置你发送给服务器的格式,dataType设置你收到服务器数据的格式。更简单的解释:contentType: 告诉服务器,我要发什么类型的数据。dataType:告诉服务器,我要想什么类型的数据。在http 请求中,get 和 post 是最常用的。在 jquery 的 ajax 中, cont转载 2022-03-02 22:14:12 · 9457 阅读 · 0 评论