即时微服务的逻辑和安全规则

译者 | 李睿
审校 | 重楼
本文将介绍如何在几分钟内而不是几周或几个月内构建一个完整的数据库系统:
(1)API:将添加用户界面(UI)和逻辑使其成为微服务
(2)逻辑和安全性:多表约束和派生,以及基于角色的安全性
(3)管理应用程序:最后构建一个多页面、多表格的Web应用程序
使用开源API逻辑服务器(API Logic Server)将提供:
关键特性
内容描述
重要性
自动化
•即时项目创建:一个API和一个管理Web应用程序
•解锁UI应用开发
定制
声明性逻辑和安全性
•5条规则vs 200行Python/ target=_blank class=infotextkey>Python代码
•减少40倍后端代码
迭代
•修改数据模型并添加规则,以及使用Python实现
•迭代开发
•Python的可扩展性
构建的过程只需要10分钟,而传统的开发过程则需要数周时间 。
本文提供了以下几种方法:

  • 概念概述:本文侧重于概念和基本过程,其操作细节在附录中描述 。
  • 自我演示:自己安装和创建这个数据库系统 。
  • 带视频的自我演示:也可以使用这个视频(它是相同的数据库系统,但其数据库是用ChatGPT创建的) 。
1.自动化:即时项目这个项目是使用如下命令创建的:
$ ApiLogicServer create --project_name=basic_demo --db_url=basic_demo注意:db_url是缩写 。如果有自己的数据库 , 可以提供一个SQLAlchemy URI 。
这将通过读取模式创建一个项目 。数据库是客户(Customer)、订单(Orders)、项目(Items)和产品(Product) , 如附录所示 。
可以用VSCode打开它 , 并按如下方式运行:
(1)创建虚拟环境:如附录所示 。
(2)启动服务器:F5(也在附录中描述) 。
(3)启动管理应用程序:使用IDE控制台中提供的链接或单击http://localhost:5656/ 。浏览器中应该出现如下所示的截图 。
以下将探讨已经创建的数据库系统(这与通常的数据库类似) 。
1.1 API与Swagger数据库系统为每个表创建一个带有端点的API,具有过滤、排序、分页、乐观锁定和相关数据访问功能,这是一个自助式服务,为自定义应用开发做好准备 。
即时微服务的逻辑和安全规则

文章插图
1.2 Admin App它还创建了一个管理应用程序(Admin App):多页面、多表 , 可用于业务用户的敏捷协作和后台数据维护 。这为API创建的自定义用户界面(UI)提供补充 。
可以单击客户2(Customer 2),并查看他们的订单和项目 。
即时微服务的逻辑和安全规则

文章插图
2.在IDE中自定义虽然API/UI自动化是一个很好的开端,但实施逻辑和安全性至关重要 。其方法如下:
下面的apply_customization过程模拟向项目添加安全性,并使用IDE在logic/declare_logic.sh和security/declare_security.py中声明逻辑和安全性 。声明的安全性和逻辑显示在下面的截图中 。
在项目的终端窗口中要应用自定义:
(1)停止服务器(红色停止按钮,或Shift-F5 -参见附录)
(2)自定义应用
# mac, linuxsh apply_customizations.sh#windows./apply_customizations.ps12.1声明安全性【即时微服务的逻辑和安全规则】上面的apply_customizations过程模拟了ApiLogicServer add-authcommand,并使用IDE在logic/declare_logic.sh中声明安全性 。
以下是声明安全性的过程:
(1)启动服务器F5
(2)启动Admin应用程序:http://localhost:5656/
(3)登录账号为s1,密码为p
(4)点击客户
注意:
(1)管理应用程序现在显示的客户数量已经减少
(2)下面的截图说明了安全声明和操作:
  • 上面代码面板中的声明性授予,等等
  • 下面代码面板的日志记录,通过显示应用了哪些授权(+ Grant:)来帮助调试;

即时微服务的逻辑和安全规则

文章插图
2.2声明逻辑逻辑(多表派生和约束)是数据库系统的重要部分,通常占到将近一半 。API逻辑服务器提供类似电子表格的规则,极大地简化和加速逻辑开发 。


推荐阅读