使用框架创建 API 和管理应用程序需要很长时间,而且太复杂。人工智能和自动化可以在几分钟内创建系统,而不是几周或几个月,大大简化,并且可以使用您已经知道的工具和方法完全定制。
在本教程中,我们将展示如何使用 VS Code、Copilot 和 API Logic Server(开源)创建完整的系统。然后,我们将添加带有规则的业务逻辑,并使用 Python 添加自定义终结点和 Kafka 集成。提供了链接,以便您可以自行执行这些步骤。
概述
如下图所示,您可以向 Copilot 提交数据库的自然语言描述。这将创建一个 Python 数据模型(SQLAlchemy 类)。
然后,使用 API 逻辑服务器 CLI 从模型创建可执行项目。或者,您可以通过标识现有数据库来创建项目。
该项目是可执行的,提供 API 和管理应用程序,实现敏捷协作并解锁自定义应用程序开发。
图 1:概述
设置
首先,安装 Python 和 VSCode。(可选)安装 Copilot:它价格适中,您可以在没有它的情况下执行本教程。但是,它提供了此处显示的自然语言服务 - 探索起来非常有趣,因此您可能只想挥霍并获取它。
然后,安装 API 逻辑服务器并启动它:
壳
python3 -m venv venv # windows: python -m venv venv
source venv/bin/activate # windows: venv\Scripts\activate
python -m pip install ApiLogicServer
ApiLogicServer start
这将在 VSCode 中启动 API 逻辑服务器。我们已将 Copilot 聊天窗格移至右侧。
图 2:IDE 中的 API 逻辑管理器
1. 使用 Copilot 创建您的模型
README 页面包括提供给 Copilot 的自然语言文本;粘贴它,然后按 Enter。它在下图中以深灰色显示(“使用 SQLAlchemy to...”)。
Copilot 创建 SQLAlchemy 模型代码。
将生成的代码粘贴到一个名为(下面图 3 中的步骤 2)的新模型文件中:sample_ai.py
图 3:使用 Copilot 和 API Logic Server 创建项目
2. 使用 API 逻辑服务器创建项目
通过在底部终端窗格中输入以下内容来创建项目(上面图 3 中的步骤 3)( 是 的同义词):als
ApiLogicServer
壳
als create --project-name=sample_ai --from-model=sample_ai.py --db-url=sqlite
API Logic Server 使用 SQLAlchemy(一种流行的 Python ORM)从 Copilot 模型创建数据库,然后通过读取数据库架构创建完全成型的项目。该项目包括数据模型类、API 和管理应用,已完全配置为执行。
这里的目标数据库是 SQLite;相同的方案也适用于其他数据库,但需要将“”替换为数据库的完整 URI。sqlite
从现有数据库创建项目
或者,如果您没有 Copilot,则可以使用现有数据库,并使用预安装的 SQLite 数据库(图 1 中的 1b)创建项目:
壳
als create --project-name=sample_ai --db-url=sqlite:///sample_ai.sqlite
3. 微服务自动化:可执行项目
无论哪种情况,API Logic Server 都会创建一个完全成型的项目,准备运行,并在 VSCode 的另一个实例中启动它:
图 4:已创建项目(新 VSCode 实例)Figure 4: Created Project (new VSCode instance)
按 F5 启动服务器;在浏览器中启动创建的管理应用程序以浏览您的数据和 API:
基于 React Admin 的 admin 应用程序提供数据查询/更新服务,并支持自动连接和页面导航的多表。这可以启动敏捷的业务用户协作,并提供后台数据功能。
JSON API 提供检索/更新服务,包括支持选择列和相关数据。这解除了对自定义应用程序开发的阻止,在等待自定义 API 开发时,这些应用程序通常被压缩到项目末尾。
将自动化与基于框架的开发进行比较:有了框架,您就可以开始编码了。有了自动化,您就可以开始运行了。
图 5:微服务自动化 - 创建的管理应用和 API
因此,我们有工作软件:用于业务用户协作的管理应用程序;一个 API,用于解锁自定义应用开发。
它很快 - 只需要几分钟 - 而且简单 - 不需要几个月的时间来学习一个框架。
4a. 使用规则进行定制:逻辑自动化
好吧,“快速而简单”很棒,但它只不过是一个没有逻辑和安全性的愚蠢宠物伎俩。这通常几乎是事务数据库应用程序工作量的一半。
API 逻辑服务器包含规则引擎。您可以使用 IDE 代码完成服务在 Python 中声明规则。
它还提供了价值:类似电子表格的规则将逻辑代码(应用程序的一半)减少了 40 倍。
但是,我们可以玩得更开心。如下图所示,我们可以要求 Copilot 为我们创建这些规则,并将它们粘贴到预先创建的文件中:
图 6:使用 Copilot 创建规则
这 5 行代码看起来就像需求一样,因此抽象级别非常高。这 5 条声明性规则需要 200 行传统程序代码。
它们是可执行的。它们侦听 SQLAlchemy ORM 事件,并根据事务中的实际更改进行触发。如果规则的引用数据未更改,则会修剪规则(及其开销)。
规则是可调试的。标准日志记录描述了每个规则的触发,包括行的状态。而且,您可以使用调试器。
根据用户的角色,为行级安全性提供了类似的声明性规则。可以从 SQL 数据库或公司存储(如 LDAP 或 Active Directory)获取授权信息。
4b. 使用 Python 进行自定义
自动化固然很棒,但让我们面对现实吧:你永远无法实现所有事情的自动化。必须具有基于标准的自定义功能——使用我们最喜欢的 IDE、Python 等标准语言以及 SQLAlchemy 和 Flask 等标准框架。
让我们来看看 2 个典型的自定义:自定义端点和 Kafka 集成。
自定义 API 端点
想象一下,接受来自 B2B 合作伙伴的指定格式的订单。下面的自定义终结点使用 (声明性映射定义,未显示) 执行转换,并保存它。这会自动激活上述业务规则以检查信用。order_b2b_def
图 7:自定义 - 添加自定义终结点
用于 Kafka 集成的自定义逻辑
让我们进一步想象一下,接受的订单必须进一步转换,并通过 Kafka 消息发送到发货。下面的屏幕截图说明,除了规则之外,还可以为业务逻辑提供 Python 代码。在这里,您拥有 Python 库的所有功能:Flask、SQLAlchemy、Kafka 等。
图 8:自定义 - Kafka 集成
5. 部署
在部署系统之前,无论是最终生产,还是与利益相关者的早期合作,价值都不会实现。API Logic Server 创建脚本来容器化项目,并使用 Docker Compose 部署到 Azure:
总结
上面的屏幕截图说明了非凡的敏捷性。使用传统框架,该系统可能需要数周或数月的时间。
但这不仅仅是敏捷性。这里的抽象级别非常高,带来了简单性,使您能够创建微服务 - 即使您不熟悉 Python 或 Flask 和 SQLAlchemy 等框架。
它不是一个复杂的框架,而更像是一个设备——只需插入你的想法或现有的数据库,你就拥有了一个可执行的、可定制的项目。
有 4 个关键要素可以提供这种速度和简单性:
自然语言处理:即使是精明的 SQL 程序员也欢迎语法帮助。从 Copilot 提供的自然语言开始是梦想成真。
微服务自动化:无需缓慢而复杂的框架编码,只需插入数据库即可获得即时 API 和管理应用程序。
使用声明性规则实现逻辑自动化:规则不是描述逻辑操作方式的繁琐代码,而是表达您想要完成的任务,并将应用程序的后端部分减少 40 倍。
扩展:使用 IDE、Python 和标准包(如 Flask 和 SQLAlchemy)完成其余元素。