新篇序言

新年伊始,祝各位新的一年前程似锦,鹏程万里~!由于个人一些原因良久没有更新相关FastApi知识点。之前也约好好要更新相关Fastapi脚手架,可是也一直没提上议程~

刚好近期有点点闲暇时刻了,想来仍是需求坚持继续共享一些我自己个人的运用结构中一些经历,也希望能得到更多大佬提点,也只有共享自己所得才能有所获。所以接下来我个人会编写根据自己最新一个脚手架来做一个后台的办理体系。

至于相关后台办理体系,现在开源出来许多,鉴于个人的前端经历不足,仅仅略懂皮毛之上,所以接下来的关于根据FastApi建立一个办理后台体系,将根据Snowy来建立后台办理体系的模板。

需求阐明的是本后台办理体系不做任何的商用,仅限于我个人用于结合FastApi结构做的一些相关后台API接口的共享。

Snowy介绍

Snowy(SnowyAdmin)是国内首个国密前后端别离快速开发渠道,集成国密加解密插件, 软件层面完全符合等保测评要求,一同完成国产化机型、中间件、数据库适配,是您的不二之选! 技能结构与暗码结合,让更多的人认识暗码,运用暗码;更是让前后别离“密”不可分。选用SpringBoot+MybatisPlus+AntDesignVue+Vite 等更多优异组件及前沿技能开发,注释丰富,代码简洁,开箱即用! Snowy谐音“小诺”,恰应小诺团队名称;意思为”下雪的、纯洁的“,寓意结构寻求简洁至上,大道至简。(以上的文字来自于 Snowy官网的介绍)

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

关于最新脚手架中心阐明

最新的脚手架,个人较于之前旧的版别有很大的改动,所以再开端之前有必要的做一下相关一些阐明。最新的脚手架全体的结构相较于曾经也变化很大。详细脚手架结构如下图所示:

全体结构图示:

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

Libs结构图示:

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

中间件结构图示:

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

自界说插件结构图示:

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

其中比较中心首要如上述图示中的关键一些中心:

  • app—关于束缚整个使用发动相关注册中间件或路由流程束缚标准。
  • auth—有关于认证相关一些工具类的封装。
  • db—一些关于数据库运用进程相关场景工具的封装。
  • libs—一些用到第三方库引进或自界说依稀lib包。
  • middleware 一些常用的中间件或基础中间件封装。
  • plugins— 则是已插件方法注入到Fastapi结构中,防止对原有结构有侵入。
    • aiojobs 根据aiojobs第三方库的的后台异步使命
    • arq 首要引进根据arq处理相关消息行列使命的库。
    • async_cashews 针对异步缓存运用,它还支撑限流以及熔断机制。
    • cache_house 也是一个redis缓存处理库,它支撑同步和异步。
    • db 插件下则包括有peewee和sqlalchemy等相关初始化操作的插件库。
    • globalrequest 全局变量的request插件。
    • jaeger 根据opentracing和jaeger-client链路追踪插件。
    • loguru 根据loguru记录相关请求日志(包括请求报文和响应报文等日志记录,支撑链路ID请求,分集中式和别离式日志记录)。
    • mq 根据rabbitmq封装简略的操作插件。
    • profiler 用于剖析使用程序的请求的相关性能。
    • pyee_event 根据pyee完成相似的信号事情插件,完成相似flask中自界说相关信号发送处理。支撑同步和异步。
    • redis 则是对redis的异步和同步一些API接口封装的插件库。
    • request_event 完成相似的falsk的关于request前置请求和后置请求的拦截机制。
    • scheduler 是对apscheduler和rocketry定时使命的简略封装。
    • sentry 相对简略,就纯粹是sentry的中间件的运用做简略的封装。
    • sessions 是处理sessions相关封装处理。支撑可选后台存贮。
    • swaggerui 处理网络访问操作文档的时分遇到网络访问异常的问题插件库。

最新脚手架全体上来说首要是针对插件封装,由于个人觉得本身FsasApi结构封装已很好,没必要进行太大的侵入性的封装,所以我个人喜爱运用平缓方法来界说一些其他第三方库的融入和运用。这样对原有事务也不会造成非常大的改动。所以最新的结构都是环绕插件来界说多一点。后续再针对相关插件做相关的介绍。

关于后台办理体系结构阐明

后台办理体系上,首要根据前面的脚手架之上来建立,全体的前端模板都是直接运用[Snowy(SnowyAdmin)]。而后端上的相关分层结构则挨近java所提供的结构,当然也略有所区别。全体的后端如下图所示:

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

FastApi(自用脚手架)+Snowy搭建后台管理系统(1)--前言

如上图所示:

  • snowy_common 是对整个后台办理体系一些公共资源分层
    • snowy_controller 则是对基本的运用类方法界说路由组时分基础controller的封装
    • snowy_dependencies 则是对全体体系后台中全局运用到一些依靠注入项的封装
    • snowy_errors 则是对全体的后台体系中相关异常处理封装
    • snowy_responses 全体后台体系中相关一致响应头报文的封装
  • snowy_logs 是日志生成文件的寄存方位
  • snowy_system 是整个后台体体系一封装
    • snowy_business 是后台办理体系其他事务
    • snowy_models 是后台办理体系中中心的模型(仅针对办理体系事务模型)
    • snowy_modules 则是针对后台关系中每个事务划分
    • snowy_script 相关数据库资源脚本处理
    • snowy_settings 体系配置相关
  • snowy_application 使用程序目标封装
  • snowy_launch 使用发动入口

关于相关脚手架和后台体系简略介绍先到此为止。后续,我个人会从脚手架建立开端,一步一步介绍我个人的封装的思路。欢迎持续关注!如果各位大佬有什么点拨,随时联系我提拔一下小弟我~感恩!

以上仅仅是个人结合自己的实践需求,做学习的实践笔记!如有笔误!欢迎批评指正!感谢各位大佬!

结束

END

简书:www.jianshu.com/u/d6960089b…

:/user/296393…

大众号:微信搜【程序员小钟同学】

小钟同学 | 文 【欢迎一同学习沟通】| QQ:308711822