net core WebApi——公用库April.Util公开及发布
前言
在之前鼓捣过一次基础工程April.WebApi后,就考虑把常用的类库打包做成一个公共类库,这样既方便维护也方便后续做快速开发使用,仓库地址:April.Util_github,April.Util_gitee,后续会继续推出基于Util的基础工程(包含权限相关)以及如果代码生成器觉得可以了也会推出,先mark不错过。
April.Util
首先,我们创建一个类库工程,当然新建之后就是删掉默认的类,我这里的版本是netstandard 2.0。
然后我们先缕下之前我做基础工程时候需要用到的通用型类库(当然后续会一直跟进补充)。
- 通用配置 AprilConfig,AprilEnums
- 缓存相关 CacheUtil,CookieUtil,SessionUtil,RedisUtil
- 日志相关 LogUtil
- 路径请求相关 UriUtil
- 回调相关 ResponseUtil
- 时间处理相关 DateUtil
- 验证码相关 CodeUtil
- 管理员相关 TokenUtil 整理中
- 加密相关 EncrypUtil
- Aop相关 AprilLogAttribute
- 其他扩展类
- 未完待续
我们所需要引入的NuGet包,尽可能的节省新工程需要引入的类库,这样统一类库环境,方便多工程简单部署问题,当然也可以只引入dll文件,自己在工程中引入需要的环境类库,引入类库列表。
- log4net
- Microsoft.AspNetCore.Http.Abstractions
- Microsoft.AspNetCore.Http.Extensions
- Microsoft.AspNetCore.Mvc.Abstractions
- Microsoft.AspNetCore.Session
- Microsoft.Extensions.Caching.Memory
- Microsoft.Extensions.Configuration
- Newtonsoft.Json
- QRCoder
- StackExchange.Redis
- System.Drawing.Common
- 未完待续
当然其中可能大多在WebApi工程中已经存在或是需要引用,这里存在重复引入的可能,所以需要关注版本问题,但是目前是会根据新版本的稳定版来统一版本问题。
代码可直接从仓库拉取,地址也在开头给出,生成工程之后我们可以得到一个dll文件,就如我前面所说,你可以引入dll文件然后在自己工程打入需要的环境包,也可以发布一个NuGet包,直接引入April.Util。
打包带走
首先,右键Util选择属性,切换到打包界面。
之后我们来发布当前类库工程,发布的过程这里就不再多说了,之后我们根据路径来找到我们发布的类库。
本地使用
如果只是本地自己用的话,也不想发布为公开,可以通过配置NuGet包的地址来获取我们自己的NuGet包。
之后,我们就可以获取我们自己的NuGet了。
发布NuGet
当然你可以选择发布到NuGet仓库,登录NuGet官网,如果没有账号需要注册个google账号。
登录之后,在我们头像下选择上传包。
选择文件,拉到最下面(当然你可以一路看看相关的参数),然后最终的Submit,之后我们就可以看到已经上传成功,但是检索需要等待个把小时,上传的包应该是没法删除,所以这点儿需要注意。
示例
在代码仓库中我连带有个Simple的WebApi,里面引入了Util,包括一些其他的常规使用方法,特别注意下入口文件Startup,当然这个工程后续也是会不断的完善的,至于更新的力度以及代码规范度,emm,个人的力量还是有限,希望也能有更多的人可以一起探讨。
Startup
public Startup(IConfiguration configuration)
{
Configuration = configuration;
AprilConfig.Configuration = configuration;
LogUtil.InitLog();
RedisUtil.InitRedis();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
AprilConfig.ServiceProvider = app.ApplicationServices;
}
/// <summary>
/// 示例获取
/// </summary>
/// <returns></returns>
[HttpGet]
[AprilLog]
public ResponseDataEntity Get()
{
var rng = new Random();
var data = Enumerable.Range(1, 2).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = rng.Next(-20, 55),
Summary = Summaries[rng.Next(Summaries.Length)],
Timestamp = (int)DateUtil.ConvertToUnixTimestamp(DateTime.Now.AddDays(index))
})
.ToList();
return ResponseUtil.Success("", data);
}
/// <summary>
/// 验证码
/// </summary>
/// <param name="type">是否画线</param>
/// <returns></returns>
[HttpGet]
[Route("Code")]
public FileContentResult Code(int type)
{
string code = CodeUtil.GetSingleObj().CreateVerifyCode(CodeUtil.VerifyCodeType.MixVerifyCode, 6);
//LogUtil.Info($"生成6位验证码:{code}");
bool isAddLines = false;
if (type == 1)
{
isAddLines = true;
}
var bitmap = CodeUtil.GetSingleObj().CreateBitmapByImgVerifyCode(code, 100, 40, isAddLines);
code = EncryptUtil.EncryptDES(code, AprilConfig.SecurityKey);
CookieUtil.AddString("code", code, 5);
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Gif);
return File(stream.ToArray(), "image/gif");
}
小结
路漫漫,小半天的整理,但是前前后后的基础工程的路淌了好几版,从netframework到net core,想做一套通用的基础工程以减少开发工作量,但是这种确实没有十全十美的,根据业务来设计才是最合适的,但是规范化这点儿不可缺失,就先从Util开始,一点点的领出来,组件化的来开发,相信往后会越来越好,如果有哪些地方不合适,也希望能有大佬给出指点,一人摸索过河,也请见谅。
net core WebApi——公用库April.Util公开及发布的更多相关文章
- net core WebApi——April.Util更新之权限
目录 前言 权限 中间层 小结 前言 在之前已经提到过,公用类库Util已经开源,目的一是为了简化开发的工作量,毕竟有些常规的功能类库重复率还是挺高的,二是为了一起探讨学习软件开发,用的人越多问题也就 ...
- April.Util更新之权限
目录 前言 权限 中间层 小结 前言 在之前已经提到过,公用类库Util已经开源,目的一是为了简化开发的工作量,毕竟有些常规的功能类库重复率还是挺高的,二是为了一起探讨学习软件开发,用的人越多问题也就 ...
- iis部署 .net core webapi
iis部署 .net core webapi 1.修改应用程序池: IIS 发布站点,这里就不介绍 IIS 安装等.这里要修改的是应用程序池,选择“无托管代码”: 2.下载安装.net core托管捆 ...
- net core Webapi基础工程搭建(六)——数据库操作_Part 1
目录 前言 SqlSugar Service层 BaseService(基类) 小结 前言 后端开发最常打交道的就是数据库了(静态网站靠边),上一篇net core Webapi基础工程搭建(五)-- ...
- net core Webapi基础工程搭建(一)——开发工具及环境
目录 开发工具 版本 后端框架 开发工具 Visual Studio 2019,既然要折腾那就体验最新版的开发工具有什么特殊的地方,之前个人开发使用的是2017. 下载地址:https://visua ...
- net core WebApi——文件分片上传与跨域请求处理
目录 前言 开始 测试 跨域 小结 @ 前言 在之前整理完一套简单的后台基础工程后,因为业务需要鼓捣了文件上传跟下载,整理完后就迫不及待的想分享出来,希望有用到文件相关操作的朋友可以得到些帮助. 开始 ...
- net core WebApi——缓存神器Redis
目录 前言 Redis 使用 RedisUtil 测试 小结 @ 前言 中秋过完不知不觉都已经快两周没动这个工程了,最近业务需要总算开始搞后台云服务了,果断直接net core搞起,在做的中间遇到了不 ...
- Web---JSTL(Java标准标签库)-Core核心标签库、I18N国际化、函数库
前面为JSTL中的常用EL函数,后面的为具体演示实例! JSTL简介: JSTL(Java Standard Tag Library) –Java标准标签库. SUN公司制定的一套标准标签库的规范. ...
- ASP.NET Core WebApi使用Swagger生成api说明文档看这篇就够了
引言 在使用asp.net core 进行api开发完成后,书写api说明文档对于程序员来说想必是件很痛苦的事情吧,但文档又必须写,而且文档的格式如果没有具体要求的话,最终完成的文档则完全取决于开发者 ...
随机推荐
- mysql基础操作 增删改查
如何使用终端操作数据库 如何登录数据库 mysql -u用户名 -p密码 比如: mysql -uroot -p123456 如何查询数据库服务器中所有的数据库 show databases; 如何选 ...
- Java 学习笔记之 Synchronized锁重入
Synchronized锁重入: 当一个线程得到一个对象锁后,再次请求此对象锁时是可以再次得到该对象的锁.这也证明在一个Synchronized方法/块的内部调用本类的其他Synchronized方法 ...
- linux shell 统计当前目录下的文件个数
shell 统计当前目录下文件个数,使用管道组合命令: ls -1 | wc -l 解释: ls -1 表示一行一个列出文件名. wc -l 表示打印统计的行数. 两个命令通过管道连在一起表示打印列出 ...
- Inkscape 旋转并复制
画一个图形,点击图标. 然后图标中心有个十字叉, 然后把这个十字叉拖到你想要旋转的地方. 然后shift+ctrl+m打开变换菜单. 选择旋转选项卡,然后设置角度,点击应用.就可以旋转了,如果配合ct ...
- 分享一个移动端rem布局的适配mixin
/*================================================================ 以下为基于ip5 宽度320做的适配,标准html{font-si ...
- Kubernetes网络分析之Flannel
Flannel是cereos开源的CNI网络插件,下图flannel官网提供的一个数据包经过封包.传输以及拆包的示意图,从这个图片中可以看出两台机器的docker0分别处于不同的段:10.1.20.1 ...
- 设计糟糕的 RESTful API 就是在浪费时间!
现在微服务真是火的一塌糊涂.大街小巷,逢人必谈微服务,各路大神纷纷忙着把自家的单体服务拆解成多个Web微小服务.而作为微服务之间通信的桥梁,Web API的设计就显得非常重要. HTTP是目前互联网使 ...
- Redis集群与高可用性技术小结
客户端分片,这种方式需要实现特定的客户端,需要手工配置redis实例并根据算法进行访问,对于redis实例的增减,调整灵活性很差,一般不推荐. 代理分片,常见的有Twemproxy架构(豆瓣创建了co ...
- SpringBoot 2.0整合阿里云OSS,实现动静分离架构
前言 相信大部分开发者对下面这张架构图并不陌生吧,现在很多网站/应用都采用了动静分离的架构进行部署.博主的博客也不例外,主机采用的是阿里云的 ECS,使用 CDN 做静态内容分发,不过静态文件还是存储 ...
- NodeJs编写Cli实现自动初始化新项目目录结构
应用场景 前端日常开发中,会遇见各种各样的cli,这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习.交流.开发. 注释:文章附有源码链接! 使用工 ...