- 博客(20)
- 收藏
- 关注
原创 基于CentOS的Docker容器化部署(五)—— 使用nginx转发api请求
本系列的前提是你已经看完了《基于.NET6平台开发WebApi》系列文章。如果您还没看完可以直接拉取代码 >>我们在宝塔面板打开文件夹,并输入以下内容,其中域名和ssl证书请自行申请并完成解析配置。保存之后我们输入docker restart nginx重启nginx,使配置生效。打开浏览器输入www.mktools.site即可访问接口的swagger页面。
2023-04-26 10:40:17 864
原创 基于CentOS的Docker容器化部署(四)—— 部署api
启动项目: docker run -d -p 8080:80 -v /mnt/Api/Logs:/app/Logs -v /mnt/Api/Files:/app/Files --name api api --restart=always。创建项目文件夹:mkdir -p /app/projects/api,然后通过宝塔面板,将发布后的文件上传到服务器。如果您还没看完可以直接拉取代码 >>进入文件目录: cd /app/projects/api。通过浏览器打开首页,至此,我们的api项目便部署完成。
2023-04-23 10:42:40 506
原创 基于CentOS的Docker容器化部署(三)—— 安装redis和mysql
本系列的前提是你已经看完了《基于.NET6平台开发WebApi》系列文章。如果您还没看完可以直接拉取代码 >>首先我们设置一下docker的镜像地址到国内,这样安装的速度比较快。1、接下来我们通过docker部署redis和mysql服务。在文件夹下创建daemon.json文件,输入以下内容并保存。到此,我们的redis和mysql服务已经安装完成。将protected-mode no #设置为no。至此,我们的redis服务已经启动完成。我们打开redis.conf。接下来重启docker。
2023-04-23 10:21:33 356
原创 基于CentOS的Docker容器化部署(二)—— 安装宝塔面板
输入 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec 安装宝塔面板,遇到对话框输入y继续。2、接下来通过系统提供的地址用户名和密码登录宝塔面板,首先我们要给服务器增加宝塔面板访问的端口号,接着使用用户名和密码登录,你可以绑定你的宝塔账号,然后我们就可以进入宝塔面板主界面。如果您还没看完可以直接拉取代码 >>
2023-04-23 09:50:59 794
原创 基于CentOS的Docker容器化部署(一)—— 准备机器
本系列的前提是你已经看完了《基于.NET6平台开发WebApi》系列文章。如果您还没看完可以直接拉取代码 >>1、安装应用环境:CentOS,Docker。到这里我们的机器已经准备完成。2、重置密码后通过终端连接。
2022-11-23 16:39:15 581 3
原创 利用过滤器实现全局异常和全局日志功能
此处我们使用Sqlsugar的自动分表功能来实现分表插入,当然根据你的日志量大小用单表也可以实现。今天我们利用过滤器实现一个全局异常和一个全局日志的功能。请求接口发现异常已经按照Json格式成功抛出。...
2022-08-19 09:58:19 1236
原创 .NET事件总线(消息队列)轻松应对高并发
源码点我一眨眼时间又临近周末,又可以休息了今天给大家介绍一个比较轻量级的事件总线:Jaina。总体介绍:Jaina核心类为一个BackgroundService,通过While来监听消息,默认存储实现为Channel,可能有的朋友没听过Channel,从.NETCore3.0微软开始提供Channel类,Channel类本质为线程安全队列,其中结合了信号量,简化了队列的使用。因此Jaina完全可以替代一般的消息队列来使用,将业务进行解耦,轻松应对高并发(Jaina非常轻量非常简洁,代码写的也比较不
2022-05-26 08:50:37 3431
原创 访问令牌(AccessToken)与刷新令牌(RefreshToken)
源码点我闲着无聊的我又来了,今天介绍一下访问令牌(AccessToken)与刷新令牌(RefreshToken)。最近公司来了几个Java,然后空气顿时充满了学术的氛围,每天都弥漫着垃圾回收,内存分配,堆栈等等各种技术问题的讨论,竖起了我的小耳朵,我偶然间听到了这个Token过期的问题,今天来说一说。众所周知,JWT是我们常用的Token类型之一,但是JWT是无状态的,所有的信息,包括超时时间都会编码在JWT中。如果Token设置的超时时间过长会显得有些不安全,如果设置的过短则必须频繁的登录。在Id
2022-05-15 09:04:20 10774
原创 基于.NET6平台开发WebApi(十二)—— 添加文件上传下载功能
本篇为大家介绍WebApi又一个必不可少的功能,那就是文件上传下载。还记得我们在初期改造项目的时候删掉的wwwroot文件夹吗,这里放的就是项目中的静态资源文件,接下来我们来手动实现这个功能。1、我们为项目添加一个静态的工具类,命名为CommonFun,并添加如下代码(以后你所有的静态扩展方法都可以放到这里)using System.Text;namespace NET6.Infrastructure.Tools{ /// <summary> /// 工具类
2022-01-19 10:54:24 5730 15
原创 基于.NET6平台开发WebApi(十一)—— 使用JWT进行用户鉴权
至此我们的项目已经可以正常运行了,但是聪明的你可能发现了一个问题,那就是我们在第九章中将控制器基类中的[Authorize]标记注释掉了,而且我们添加了一个CurrentUserId属性,没错,它就是为了用户鉴权使用的。用户登录可以说是WebApi必不可少的功能,本篇我们就来详细说说如何进行用户鉴权。1、对于小型项目或者个人项目来说,可能规模比较小,而且不需要单点登录这样的功能,也就没有必要去单独建设一个IdentityServer服务器来实现鉴权,此处我们可以直接使用.NET自带的功能来实现JWT签发
2022-01-18 11:23:22 5836 3
原创 基于.NET6平台开发WebApi(十)—— 添加CSRedis支持
到此您已经完成了接口基本功能的开发,已经完全具备做项目的能力,本篇介绍.NET平台另一个优秀框架:CSRedis,通过它您可以更方便的操作Redis。1、打开Nuget,搜索安装CSRedisCore。2、接下来我们将Redis连接字符串配置到配置文件中,打开appsetting.json,添加如下代码{ "ConnectionStrings": { "SugarConnectString": "server=localhost;Database=DBTest;Uid=root;Pwd=
2022-01-17 10:38:24 2644 1
原创 基于.NET6平台开发WebApi(九)—— 添加Autofac支持
仓储已经成功注入到项目中,接下来我们基于Address来实现简单的CRUD操作1、为了更好的开发,我们先定义一个通用的返回结构,并在BaseController中实现几个实例化方法和一些通用方法,代码如下using Microsoft.AspNetCore.Mvc;using NET6.Domain.ViewModels;using Serilog;using System.Security.Claims;namespace NET6.Api.Controllers{ /// &l
2022-01-17 10:36:10 2478 9
原创 基于.NET6平台开发WebApi(八)—— 添加Autofac支持
1、目前Sqlsugar已经具备操作数据库的能力,根据微软电子书,我们按照如下结构创建文件夹来完善我们的项目2、我们分别在对应的文件夹中为Address创建Dto和ViewModel,代码如下namespace NET6.Domain.Dtos{ public class AddressDto { /// <summary> /// 收件人姓名 /// </summary> public stri
2022-01-17 10:32:50 3445 14
原创 基于.NET6平台开发WebApi(七)—— 添加Sqlsugar支持
1、Sqlsugar配置完毕,我们按照如下结构来创建实体类,为了方便开发,我们先创建一个实体基类EntityBase,然后创建Address类继承于EntityBaseusing SqlSugar;namespace NET6.Domain.Entities{ /// <summary> /// 实体基类 /// </summary> public class EntityBase { /// <summary&
2022-01-13 14:37:48 4065 1
原创 基于.NET6平台开发WebApi(六)—— 添加Sqlsugar支持
写到这里,各位看官且听我说两句废话。不同于其他语言,.NET平台向来以易用性著称,不管是持续更新的C#语法,还是整个.NET平台,亦或者是有宇宙第一IDE著称的VS,都表现出了这个特点。随着微软开源、容器化、.NETCore、.NET5、.NET6等的出现,更是把性能和易用性发挥到极致,单从技术上讲,.NET可以说已经是名列前茅,如今国内大厂也都纷纷开始部分的转向.NET平台。今天说的Sqlsugar便是.NET性能和易用性的代表之一,不同于EF的设计思想,相比于市面上的其他DBHelper,他更加简单易用
2022-01-13 14:32:43 6000 8
原创 基于.NET6平台开发WebApi(五)—— 添加Serilog支持
接下来我们为项目添加日志支持1、由于本项目我们需要将日志写入到文件,因此我们可以直接安装Serilog.Sinks.File,打开Nuget,搜索安装Serilog.Sinks.File。2、打开Program.cs,添加如下代码:#region 初始化日志Log.Logger = new LoggerConfiguration() .MinimumLevel.Error() .WriteTo.File(Path.Combine("Logs", @"Log.txt"),
2022-01-12 16:42:27 2922 3
原创 基于.NET6平台开发WebApi(四)—— 添加Swagger支持
swagger搭建成功,但是还没有任何显示,接下来我们新增控制器。1、我们先创建一个BaseController,用于实现一些通用的功能。2、修改BaseController继承于ControllerBase,删掉其中的Index方法,为BaseController添加类注释,并添加[Authorize]和[ApiController]标记。3、新增AddressController,继承于BaseController,添加如下代码,编译运行,一个最简单的接口便成功返回。using Micros
2022-01-10 13:47:57 2971 13
原创 基于.NET6平台开发WebApi(三)—— 添加Swagger支持
本项目使用的一些框架如下:Swagger,Serilog,Sqlugar,CSRedis,Autofac具体配置将会在后续逐一介绍1、首先我们对项目进行引用,右键.NET6.Api项目依赖项,选择添加项目引用,勾选NET6.Domain和NET6.Infrastructure,使用相同的方法为NET6.Infrastructure添加NET6.Domain引用。2、打开Nuget,搜索安装Swashbuckle.AspNetCore。3、由于swagger是基于xml文件来加载文档,所以我们要
2022-01-10 13:41:34 6293 11
原创 基于.NET6平台开发WebApi(二)—— 项目搭建
**[ ] 1、为了更好的进行开发,我们对新建的项目进行一些改造: 修改解决方案名称为:NET6(快速开发框架)修改项目名称为:NET6.Api删掉wwwroot、Views和Models文件夹以及Controllers文件夹中的HomeController 2.引入库附上微软电子书:设计面向 DDD 的微服务 | Microsoft Docs右键添加新建项目,选择类库,输入名称NET6.Domain,选择框架.NET6.0并点击创建,删掉类库中自带的Class1.cs文件,使用相同的方法创建
2022-01-08 15:01:03 5427
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人