Fork me on GitHub
上一页 1 2 3 4 5 6 7 8 ··· 20 下一页
摘要: Log,Metrics,Tracing是为服务正常运行保驾护航的三件套,前面有介绍过Log和Metrics,本篇说明说一下Tracing。Tracing的思路和Metrics一样,通过三方服务,来达成效果,这里选用的是Jaeger,通过在MiniAPI项目中引入Jaeger和OpenTracing的 阅读全文
posted @ 2022-11-30 20:28 桂素伟 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 应用的各种Metrics是保证应用健康稳定运行的基础,特别对于一些可用性有所要求的应用,本文介绍prometheus-net这个三方指示库。 prometheus-net的工作原理是,在应用内部埋点,通过prometheus采集数据,然后通过grafana把采集到的数据展现出来,所以这里首先要下载p 阅读全文
posted @ 2022-11-30 20:19 桂素伟 阅读(128) 评论(0) 推荐(1) 编辑
摘要: 在写.NET6 MiniAPI的时候,.NET7的新功能也在发展,这里就用特别篇把新加的特点分享给大家,本篇先说Preview1和2 特点1 文件上传,demo如下: var builder = WebApplication.CreateBuilder(args); var app = builde 阅读全文
posted @ 2022-11-30 20:03 桂素伟 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 注:如果你使用Dapper一段时间了,这篇你可以跳过去了。 在第十二篇中,我们聊过官方的ORM——EntityFramework,它可以把SQL细节都隐藏,这对于一些标准化的关系数据库项目非常便捷。今天,介绍另外一个流行的ORM——Dapper,Dapper是通过扩展IDbConnection方法来 阅读全文
posted @ 2022-11-29 21:10 桂素伟 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 为了保障系统的稳定和安全,在调用三方服务时,可以增加重试和熔断。重试是调用一次失败后再试几试,避免下游服务一次闪断,就把整个链路终止;熔断是为了防止太多的次数的无效访问,导致系统不可知异常。 Polly是独立的重试机制的三方库,这里只说明在使用httpclient时,请求下游api时的重试和熔断。需 阅读全文
posted @ 2022-11-29 21:02 桂素伟 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 本篇是与上篇HttpClient有关联的,有前篇中,我们是直接使用HttpClient来发出请求的,所有的请求信息都是我们根据需要自己来填充的。那Refit是什么呢?它是一个让我们调用API就像调用一个对象的方法一样简单,是通过把http请求信息,配置到一个接口,由refit把这些信息转成一个标准的 阅读全文
posted @ 2022-11-29 20:52 桂素伟 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 说明:本篇不是说明HttpClient怎么使用,而以分享在asp.net core mini api框架下,HttpClient的引入和使用方式。 我们在业务开发中,免不了调用三方的服务,这时就会用到HttpClient,在早期的asp.net core框架中,一般是通过new HttpClient 阅读全文
posted @ 2022-11-29 20:46 桂素伟 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 限流,可以网络的基础设施进行配置实现,也可以在网关的地方进行限流,但服务本身的限流也不可或缺,因为当多副本时,一个副本故障,流量对于其他副本来说会提高,如果超过其承受请求量的范围,会引起服务连续崩塌,所以单服务本身最好也是要实现限流的。 在asp.net core项目中,可以引入AspNetCore 阅读全文
posted @ 2022-11-28 20:42 桂素伟 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 为了验证api post上来的数据的有效性,我们可以引入FluentValidation(详见https://fluentvalidation.net)。在asp.net mvc中,使用的是模型验证,通过在实体类上添加特性达到验证效果。 FluentValidation的原理是通过实现Abstrac 阅读全文
posted @ 2022-11-28 20:27 桂素伟 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 在本系例文章的第八篇中,我们聊过官方的日志实现,即《.NET6之MiniAPI(八):日志》。但官方的日志功能更多是提供了一个实现基础,对于要求一个灵活,强大,方便的日志体系,官方的还是有差距的,那么本篇就介绍一下NLog,这款强大,灵活,方便的日志库,在MiniAPI中的使用。直入主题,首先引入N 阅读全文
posted @ 2022-11-28 20:22 桂素伟 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 从本篇开始,介绍一些很不错的三方库,来丰富MiniAPI的使用。 在创建MiniAPI项目时,模板提供了一个是否启用OpenAPI的选项,足见这个三方库的优势和强大。 OpenAPI为我们测试API提供了强大的支持,调用API的开发人员,可以轻松测试,参照开发接口和接口参数,有效的节省了大量文档的书 阅读全文
posted @ 2022-11-27 21:00 桂素伟 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 缓存是空间换时间的一种做法,可以有效的提升响应时间,asp.net core引入了本地内存缓存和分布式缓存。 先看一下本地内存缓存: using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Internal; var 阅读全文
posted @ 2022-11-27 20:28 桂素伟 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 对于web,安全是一个永久的话题,所以ASP.NET Core数据保护提供了一个简单,易用的加密API,可以用来保护数据,密钥管理和轮换。 ASP.NET Core的数据保护是根据本机的一个key来生成加密码,然后再用这个key来解密,如果key不一样,解密失败。默认情况下这个key的有效期是90天 阅读全文
posted @ 2022-11-27 19:54 桂素伟 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 前一篇的跨域请求的方式是松宽的方式,毕竟跨域有安全风险,应尽量少的允许访问必要资源,本篇分别从请求方法,请求头和请求凭据方面了解跨域设置。 请求方法: api项目,get,post是默认访问,这里只设置了PUT允许访问 using Microsoft.AspNetCore.Cors; var bui 阅读全文
posted @ 2022-08-03 22:10 桂素伟 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 为了说明跨请求,创建了两个项目,一个mini api,端口是5001,另一个razor page项目,端口是5280。5280项目会在页面用ajax的方式来请求5001,形成跨域请求,由于是本地测试,host都是localhost,所以通过端口号不同,形成不同的域。 api项目 using Micr 阅读全文
posted @ 2022-08-03 22:02 桂素伟 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 程序员开发程序,是“生”的过程,运维人员负责日常运维,是“养”的过程,在养的过程,运维人员希望在第一时间了解程序的状况,健康检查,是最基础的手段。 var builder = WebApplication.CreateBuilder(args); //注入健康检查服务 builder.Service 阅读全文
posted @ 2022-07-27 21:43 桂素伟 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 说明:本篇重点说明MiniAPI引入EntityFramework,EF的使用不是本篇的重点 本篇是在MiniAPI中使用EntityFramework,所以先奉上创建数据的脚本,数据库是SQL Server,可能版本不同,会有一些问题,可以自行调整,这个脚本是基于SQL Server2019的。 阅读全文
posted @ 2022-07-27 21:31 桂素伟 阅读(231) 评论(0) 推荐(0) 编辑
摘要: .net开发体系里,大部分本地化的实现都是用资源文件实现(.resx),asp.net core中的多语Culture是指区域性的对象,而UICulture 该对象表示资源管理器在运行时查找区域性特定资源时所用的当前用户接口区域性。 asp.net core实现也是通过添注入本地化服务,和添加中间件 阅读全文
posted @ 2022-07-21 21:34 桂素伟 阅读(179) 评论(0) 推荐(0) 编辑
摘要: JWT不管是基于角色,还是自定义策略,实现的步骤都是大同小异的,基于自定义策略的步骤如下: 1、appsettings.json中配置JWT参 2、添加身份认证和授权服务和中间件,并设置为策略模式和策略名称 3、定义生成Token的方法和验证Toekn参数的方法 4、登录时验证身份并分发Toekn 阅读全文
posted @ 2022-07-21 21:29 桂素伟 阅读(340) 评论(0) 推荐(2) 编辑
摘要: 身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统、数据库、应用或资源中的凭据进行比较。 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作。 授权指判断允许用户执行的操作的过程。也可以将身份验证理解为进入空间(例如服务器、数据库、应用或资源)的一种方式,而授权是用 阅读全文
posted @ 2022-07-21 21:23 桂素伟 阅读(185) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 20 下一页