摘要:
Log,Metrics,Tracing是为服务正常运行保驾护航的三件套,前面有介绍过Log和Metrics,本篇说明说一下Tracing。Tracing的思路和Metrics一样,通过三方服务,来达成效果,这里选用的是Jaeger,通过在MiniAPI项目中引入Jaeger和OpenTracing的 阅读全文
摘要:
应用的各种Metrics是保证应用健康稳定运行的基础,特别对于一些可用性有所要求的应用,本文介绍prometheus-net这个三方指示库。 prometheus-net的工作原理是,在应用内部埋点,通过prometheus采集数据,然后通过grafana把采集到的数据展现出来,所以这里首先要下载p 阅读全文
摘要:
在写.NET6 MiniAPI的时候,.NET7的新功能也在发展,这里就用特别篇把新加的特点分享给大家,本篇先说Preview1和2 特点1 文件上传,demo如下: var builder = WebApplication.CreateBuilder(args); var app = builde 阅读全文
摘要:
注:如果你使用Dapper一段时间了,这篇你可以跳过去了。 在第十二篇中,我们聊过官方的ORM——EntityFramework,它可以把SQL细节都隐藏,这对于一些标准化的关系数据库项目非常便捷。今天,介绍另外一个流行的ORM——Dapper,Dapper是通过扩展IDbConnection方法来 阅读全文
摘要:
为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。 Polly是独立的重试机制的三方库,这里只说明在使用httpclient时,请求下游api时的重试和熔断。需 阅读全文
摘要:
本篇是与上篇HttpClient有关联的,有前篇中,我们是直接使用HttpClient来发出请求的,所有的请求信息都是我们根据需要自己来填充的。那Refit是什么呢?它是一个让我们调用API就像调用一个对象的方法一样简单,是通过把http请求信息,配置到一个接口,由refit把这些信息转成一个标准的 阅读全文
摘要:
说明:本篇不是说明HttpClient怎么使用,而以分享在asp.net core mini api框架下,HttpClient的引入和使用方式。 我们在业务开发中,免不了调用三方的服务,这时就会用到HttpClient,在早期的asp.net core框架中,一般是通过new HttpClient 阅读全文
摘要:
限流,可以网络的基础设施进行配置实现,也可以在网关的地方进行限流,但服务本身的限流也不可或缺,因为当多副本时,一个副本故障,流量对于其他副本来说会提高,如果超过其承受请求量的范围,会引起服务连续崩塌,所以单服务本身最好也是要实现限流的。 在asp.net core项目中,可以引入AspNetCore 阅读全文
摘要:
为了验证api post上来的数据的有效性,我们可以引入FluentValidation(详见https://fluentvalidation.net)。在asp.net mvc中,使用的是模型验证,通过在实体类上添加特性达到验证效果。 FluentValidation的原理是通过实现Abstrac 阅读全文
摘要:
在本系例文章的第八篇中,我们聊过官方的日志实现,即《.NET6之MiniAPI(八):日志》。但官方的日志功能更多是提供了一个实现基础,对于要求一个灵活,强大,方便的日志体系,官方的还是有差距的,那么本篇就介绍一下NLog,这款强大,灵活,方便的日志库,在MiniAPI中的使用。直入主题,首先引入N 阅读全文
摘要:
从本篇开始,介绍一些很不错的三方库,来丰富MiniAPI的使用。 在创建MiniAPI项目时,模板提供了一个是否启用OpenAPI的选项,足见这个三方库的优势和强大。 OpenAPI为我们测试API提供了强大的支持,调用API的开发人员,可以轻松测试,参照开发接口和接口参数,有效的节省了大量文档的书 阅读全文
摘要:
缓存是空间换时间的一种做法,可以有效的提升响应时间,asp.net core引入了本地内存缓存和分布式缓存。 先看一下本地内存缓存: using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Internal; var 阅读全文
摘要:
对于web,安全是一个永久的话题,所以ASP.NET Core数据保护提供了一个简单,易用的加密API,可以用来保护数据,密钥管理和轮换。 ASP.NET Core的数据保护是根据本机的一个key来生成加密码,然后再用这个key来解密,如果key不一样,解密失败。默认情况下这个key的有效期是90天 阅读全文