构建无服务器 REST API 的低代码方法

在后端世界中,构建基于 REST 的服务非常普遍。在无服务器世界中开发服务时,这是一种趋势,但它带来了很多痛苦。例如,我们需要用我们选择的语言编写一个函数,然后需要构建一个配置脚本,如云形成或terraform,以链接用于构建解决方案的服务集。

在本文中,我们将在 AWS lambda、API 网关和 PostgreSQL 数据库上构建基于 REST 的服务。关键部分是我们将完全使用低代码集成工具和运行时框架 Kumologica 开发它。

用例

企业 ABC 公司的客户注册门户需要后端服务来存储数据。注册客户时,门户将调用基于 rest 的服务以插入客户信息。门户的管理页面具有列出客户记录的功能。

高级设计

根据上面给出的设计,企业正在使用 AWS 云提供商及其 Lambda 服务来托管后端 REST API 服务。lambda 函数将使用 Kumologica 设计器和运行时框架开发,该框架在 Node.JS 上运行。lambda 函数需要与作为托管服务托管在外部的 PostgreSQL 数据库连接。

先决条件

  1. 拥有具有必要 IAM 访问权限的 AWS 云账户或具有权限的用户(按照 Kumologica 设计器安装期间的规定)。
  2. 在您的计算机中配置的 AWS 配置文件。
  3. 安装 Kumologica 设计器。
  4. 在 ElephantSQL 中创建一个试用帐户(PostgreSQL 数据库的托管服务)。
  5. 运行以下 SQL 脚本以创建客户表。
CREATE TABLE CUSTOMER(
   NAME CHAR(50) PRIMARY KEY      NOT NULL,
   EMAIL           CHAR(50) NOT NULL,
   AGE         INT      NOT NULL,
   ADDRESS           CHAR(50) NOT NULL
);

实现

让我们开始实现解决方案,首先通过终端或 Windows 命令行使用命令打开 Kumologica 设计器。 kl open

列出客户的流程

  1. 通过提供项目名称和客户服务来创建新项目。
  2. 通过打开命令行或终端并转到项目工作区的路径(项目包的位置.json)在工作区中安装 SQL 节点。输入以下 npm 命令进行安装。 npm i @kumologica/kumologica-contrib-sql
  3. 将“事件侦听器”节点拖放到设计器画布上,并为“事件侦听器”节点提供以下配置。
Display Name : [GET] /customers
Event Source : Amazon API Gateway
Verb : GET
URL : /customers

上述配置适用于列出所有客户的流。 4. 将组件面板中的记录器节点添加到画布,并将事件侦听器节点连接到该节点。提供以下日志消息。

Display Name : Log_Entry
Level : INFO
Message : Request received
Log format : String

  1. 从组件面板的存储类别中,选择 SQL 节点并将其放在记录器节点之后。提供以下配置。
Display Name : GetCustomers
Provider : Postgres
Host : <>
Port : 5432
Database : <>
Timeout : 10000
Username : <>
Password : <>
Query : SELECT * FROM CUSTOMER;

  1. 拖放事件侦听器结束节点并将其连接到 SQL 节点的输出。提供以下配置。
Display Name : Success
Response : Http Response
Status code : 200
Header > Content-Type : application/json
Payload : msg.payload.rows

客户列表的最终流程实现。

添加客户的流程

  1. 使用以下配置添加事件列表节点。
Display Name : [POST] /customers
Event Source : Amazon API Gateway
Verb : POST
URL : /customers

  1. 添加一个 JSON 节点并将其连接到 EventListner 节点。打开节点并选择“始终将 JSON 字符串转换为对象”。
  2. 添加记录器并提供以下配置。将记录器连接到 JSON 节点的输出。
Display Name : Log_Entry
Level : INFO
Message : msg.payload
Log format : JSON

  1. 添加 SQL 节点并提供以下配置。将记录器的输出连接到 SQL 节点。
Display Name : AddCustomer
Provider : Postgres
Host : <>
Port : 5432
Database : <>
Timeout : 10000
Username : <>
Password : <>
Query : "INSERT INTO CUSTOMER( NAME, EMAIL , AGE , ADDRESS ) VALUES ('" & msg.payload.name & "','" & msg.payload.email & "'," & msg.payload.age & ",'" & msg.payload.address & "');"

  1. 将事件侦听器终端节点连接到 SQL 节点的输出,并提供以下配置。
Display Name : Success
Response : Http Response
Status code : 200
Header > Content-Type : application/json
Payload : msg.payload

客户列表的最终流程实现。

部署到 AWS

  1. 要部署到 AWS,请从设计器的右侧面板中选择 AWS 部署图标。
  2. 选择您创建的 AWS 配置文件名称作为先决条件的一部分。
  3. 单击部署。

部署完成后,用于访问服务的完整 REST 终结点 URL 将显示在设计器终端中。您可以使用您选择的任何 REST 客户端测试终端节点。

结论

从 Kumologica 设计器部署流时,设计器会自动将流打包为 lambda zip 以及 AWS 云形成脚本。该脚本由设计器的部署段生成。云形成脚本将流部署为基于节点.js AWS 函数,并通过 AWS API 网关公开该函数。如您所见,我们开发了这种无服务器 REST 服务,其编码非常少,脚本为零。

你可能感兴趣的:(数据库)