快速实现业务规则的开源API逻辑服务器简介


API Logic Server 是一个开源 Python 项目。它是一个用于项目创建的CLI,以及用于项目执行的一组运行时(SAFRS API、Flask、SQLAlchemy ORM、业务逻辑引擎)。

它作为标准 pip 安装运行,或在 Docker 下运行。

对于寻求提高业务敏捷性的开发人员及其组织, API Logic Server 提供

(1)微服务自动化:使用1 个命令创建可执行项目:

  1. API自动化:每个表的增删改查,分页,乐观锁定,过滤和排序,以及
  2. 应用程序自动化:多页面、多表管理应用程序。

(2)IDE 中的自定义:使用标准工具(Python、Flask、SQLAlchemy、GitHub 和 Docker),以及
  1. 逻辑自动化:独特的规则 -多表推导和约束更加简洁
  2. 部署自动化:创建用于容器化系统并部署到 Azure 的脚本。

与框架不同,不再需要数周至数月的复杂开发。API Logic Server为即时集成和应用程序后端提供独特的自动化。

在虚拟环境中安装 API 逻辑服务器

python3 -m venv venv                 # windows: python -m venv venv
source venv/bin/activate             # windows: venv\Scripts\activate
python -m pip install ApiLogicServer

然后,验证它是否正常工作 - 创建并运行演示:

验证 - 创建并运行演示

ApiLogicServer create --project-name=sample_ai --db-url=sqlite:///sample_ai.sqlite
code sample_ai

开发API

  • 使用传统框架手工创建 API 和管理应用程序需要很长时间,而且太复杂
  • 使用 VS Code 和API Logic Server(开源)自动创建完整的系统。
  • 然后,我们将添加带有规则的业务逻辑,并使用Python添加自定义端点和Kafka 集成。

操作步骤:

  • 向 Copilot 提交数据库的自然语言描述。这将创建一个 Python 数据模型(SQLAlchemy 类)。  
  • API Logic Server 使用 SQLAlchemy(一种流行的 Python ORM)从 Copilot 模型创建数据库,然后通过读取数据库架构创建完整的项目。该项目包括您的数据模型类、API 和管理应用程序,完全配置为执行。
  • API Logic Server 会创建一个完整的项目
  • 该项目是可执行的,提供 API 和管理应用程序,实现敏捷协作并解锁自定义应用程序开发。

这个API有自己的管理程序:

  • 管理应用是基于React Admin,提供数据查询/更新服务,支持多表自动连接和页面导航。这可以启动敏捷的业务用户协作,并提供后台数据功能。
  • JSON API提供检索/更新服务,包括支持选择列和相关数据。这解除了自定义应用程序开发的障碍,在等待自定义 API 开发时,自定义应用程序开发通常会被压缩到项目的末尾。

使用规则自定义:逻辑自动化

  • API 逻辑服务器包含一个规则引擎。您可以使用 IDE 代码完成服务在 Python 中声明规则。  
  • 它还提供了:类似电子表格的规则将逻辑代码(应用程序的一半)减少了 40 倍。
  • 这些规则是可执行的。它们侦听 SQLAlchemy ORM 事件,并触发以响应事务中的实际更改。如果规则(及其开销)引用的数据未更改,则规则(及其开销)将被修剪。
  • 规则是可调试的。标准日志记录描述每个规则触发,包括行的状态。并且,您可以使用调试器。 
  • 基于用户的角色,为行级安全性提供了类似的声明性规则。授权信息可以从 SQL 数据库或企业存储(例如LDAP 或 Active Directory)获取。

使用 Python 进行定制
例如:

  • 可以自定义API端点:想象一下从 B2B 合作伙伴那里接受指定格式的订单,进行声明性映射定义,这会自动激活上述业务规则来检查信用。
  • Kafka 集成的自定义逻辑:让我们进一步想象一下,接受的订单必须进一步转换,并通过 Kafka 消息发送到发货。除了规则之外,您还可以为业务逻辑提供 Python 代码。

借助大模型实现快速开发
满足速度和简单性有 4 个关键要素:

  1. 自然语言处理: 即使是精明的 SQL 程序员也欢迎语法帮助。从 Copilot 提供的自然语言开始,梦想成真了。
  2. 微服务自动化:无需进行缓慢而复杂的框架编码,只需插入数据库即可获取即时 API 和管理应用程序。
  3. 使用声明性规则的逻辑自动化:规则不是描述逻辑如何运行的繁琐代码,而是表达您想要完成的任务,并将应用程序的后端部分减少 40 倍。
  4. 可扩展性:使用 IDE、Python 和标准包(例如 Flask 和 SQLAlchemy)完成剩余的元素。