使用 Copilot 和 API 逻辑服务器的即时 API

使用框架创建 API 和管理应用程序需要很长时间,而且太复杂。人工智能和自动化可以在几分钟内创建系统,而不是几周或几个月,大大简化,并且可以使用您已经知道的工具和方法完全定制。

在本教程中,我们将展示如何使用 VS Code、Copilot 和 API Logic Server(开源)创建完整的系统。然后,我们将添加带有规则的业务逻辑,并使用 Python 添加自定义终结点和 Kafka 集成。提供了链接,以便您可以自行执行这些步骤。

概述

如下图所示,您可以向 Copilot 提交数据库的自然语言描述。这将创建一个 Python 数据模型(SQLAlchemy 类)。

然后,使用 API 逻辑服务器 CLI 从模型创建可执行项目。或者,您可以通过标识现有数据库来创建项目。

该项目是可执行的,提供 API 和管理应用程序,实现敏捷协作并解锁自定义应用程序开发。

1101845386743cc91d01ec2a35c29102.png

图 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 聊天窗格移至右侧。

d58f424787ebd7b547ee9846d4ef186a.png

图 2:IDE 中的 API 逻辑管理器

1. 使用 Copilot 创建您的模型

README 页面包括提供给 Copilot 的自然语言文本;粘贴它,然后按 Enter。它在下图中以深灰色显示(“使用 SQLAlchemy to...”)。

Copilot 创建 SQLAlchemy 模型代码。

将生成的代码粘贴到一个名为(下面图 3 中的步骤 2)的新模型文件中:sample_ai.py

d5d78a8cf7332b9fc5121452dd1923c4.png

图 3:使用 Copilot 和 API Logic Server 创建项目

2. 使用 API 逻辑服务器创建项目

通过在底部终端窗格中输入以下内容来创建项目(上面图 3 中的步骤 3)( 是 的同义词):alsApiLogicServer

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 的另一个实例中启动它:

1e34c79914eeb082461e3676437762cc.jpeg

图 4:已创建项目(新 VSCode 实例)Figure 4: Created Project (new VSCode instance)

按 F5 启动服务器;在浏览器中启动创建的管理应用程序以浏览您的数据和 API:

  • 基于 React Admin 的 admin 应用程序提供数据查询/更新服务,并支持自动连接和页面导航的多表。这可以启动敏捷的业务用户协作,并提供后台数据功能。

  • JSON API 提供检索/更新服务,包括支持选择列和相关数据。这解除了对自定义应用程序开发的阻止,在等待自定义 API 开发时,这些应用程序通常被压缩到项目末尾。

将自动化与基于框架的开发进行比较:有了框架,您就可以开始编码了。有了自动化,您就可以开始运行了。

b63405f5d6bea17346345476e99c17e8.png

图 5:微服务自动化 - 创建的管理应用和 API

因此,我们有工作软件:用于业务用户协作的管理应用程序;一个 API,用于解锁自定义应用开发。

很快 - 只需要几分钟 - 而且简单 - 不需要几个月的时间来学习一个框架。

4a. 使用规则进行定制:逻辑自动化

好吧,“快速而简单”很棒,但它只不过是一个没有逻辑和安全性的愚蠢宠物伎俩。这通常几乎是事务数据库应用程序工作量的一半

API 逻辑服务器包含规则引擎。您可以使用 IDE 代码完成服务在 Python 中声明规则。

它还提供了价值:类似电子表格的规则将逻辑代码(应用程序的一半)减少了 40 倍。

但是,我们可以玩得更开心。如下图所示,我们可以要求 Copilot 为我们创建这些规则,并将它们粘贴到预先创建的文件中:

dfcafa6c71ce935fd938fe170ef174c4.png

图 6:使用 Copilot 创建规则

这 5 行代码看起来就像需求一样,因此抽象级别非常高。这 5 条声明性规则需要 200 行传统程序代码。

它们是可执行的。它们侦听 SQLAlchemy ORM 事件,并根据事务中的实际更改进行触发。如果规则的引用数据未更改,则会修剪规则(及其开销)。

规则是可调试的。标准日志记录描述了每个规则的触发,包括行的状态。而且,您可以使用调试器。

根据用户的角色,为行级安全性提供了类似的声明性规则。可以从 SQL 数据库或公司存储(如 LDAP 或 Active Directory)获取授权信息。

4b. 使用 Python 进行自定义

自动化固然很棒,但让我们面对现实吧:你永远无法实现所有事情的自动化。必须具有基于标准的自定义功能——使用我们最喜欢的 IDE、Python 等标准语言以及 SQLAlchemy 和 Flask 等标准框架。

让我们来看看 2 个典型的自定义:自定义端点和 Kafka 集成。

自定义 API 端点

想象一下,接受来自 B2B 合作伙伴的指定格式的订单。下面的自定义终结点使用 (声明性映射定义,未显示) 执行转换,并保存它。这会自动激活上述业务规则以检查信用。order_b2b_def

788f93396c9b92c5f5c19560d30dd9b0.png

图 7:自定义 - 添加自定义终结点

用于 Kafka 集成的自定义逻辑

让我们进一步想象一下,接受的订单必须进一步转换,并通过 Kafka 消息发送到发货。下面的屏幕截图说明,除了规则之外,还可以为业务逻辑提供 Python 代码。在这里,您拥有 Python 库的所有功能:Flask、SQLAlchemy、Kafka 等。

231a263c513702af7dd8f1b8db957b0e.png

图 8:自定义 - Kafka 集成

5. 部署

在部署系统之前,无论是最终生产,还是与利益相关者的早期合作,价值都不会实现。API Logic Server 创建脚本来容器化项目,并使用 Docker Compose 部署到 Azure:

33c87ed70d53421c9ab09089ea53f5be.png

总结

上面的屏幕截图说明了非凡的敏捷性。使用传统框架,该系统可能需要数周或数月的时间。

2eb460ca53d8678d8638ca1222d8ed3e.jpeg

但这不仅仅是敏捷性。这里的抽象级别非常高,带来了简单性,使您能够创建微服务 - 即使您不熟悉 Python 或 Flask 和 SQLAlchemy 等框架。

它不是一个复杂的框架,而更像是一个设备——只需插入你的想法或现有的数据库,你就拥有了一个可执行的、可定制的项目。

有 4 个关键要素可以提供这种速度和简单性:

  1. 自然语言处理即使是精明的 SQL 程序员也欢迎语法帮助。从 Copilot 提供的自然语言开始是梦想成真。

  2. 微服务自动化:无需缓慢而复杂的框架编码,只需插入数据库即可获得即时 API 和管理应用程序。

  3. 使用声明性规则实现逻辑自动化:规则不是描述逻辑操作方式的繁琐代码,而是表达您想要完成的任务,并将应用程序的后端部分减少 40 倍。

  4. 扩展:使用 IDE、Python 和标准包(如 Flask 和 SQLAlchemy)完成其余元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值