本文介绍通过应用集成实现从API配置文件导入流实现数据库内容增删改查。完成创建一个API类型的集成,在该集成中配置集成流实现对数据库内容的增删改查。
前提条件
- 在阿里云容器服务Kubernetes版上创建了Database服务。具体操作步骤,请参见使用镜像快速创建无状态Deployment应用。
- 在数据库已创建表并定义字段,本示例以task表和id、task、completed字段为例。
- 待处理的API文件(示例API文件)需要符合OpenAPI 2.0规范,且已经保存到本地。本文提供的示例文件为压缩格式,使用前请先解压。
- 本地已安装Postman和MySQL客户端。
背景信息
在集成中导入API文件,自动生成5个子集成流。您可以按需创建5个完整的集成流,实现对API的增删改查。
自动生成的5个子集成流:
- List all tasks
- Create new task
- Fetch task
- Update task
- Delete task
创建连接
本示例中会用到Database,所以需要借助连接器创建对应的连接。
创建Database连接,请参见创建连接。
创建集成
- 登录应用集成控制台。
- 在顶部菜单栏,选择地域。
- 在左侧导航栏,选择集成 > 集成列表。
- 在集成列表页面,选择目标命名空间,然后单击新建集成。
- 在新建集成面板,选择从API配置文件导入流,选择目标环境,然后单击选择文件,从本地路径上传API文件。
- API文件上传完成后,单击文件校验。文件校验完成后,会展示API名称、API描述和API数量信息。
- 在新建集成面板,单击创建。创建集成后,进入集成设计页面。示例API文件上传后自动生成5个子集成流,每个子集成流的首尾已经自动生成,需要为每个子集成流创建完整的集成流,才可以实现对API的增删改查。
- 在集成设计面板右上角,单击保存,保存集成流。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
创建List all tasks集成流
- 在左侧导航栏,选择集成元素 > 集成流 > List all tasks。
- 在集成流中添加Database连接。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击连接,然后单击Database连接。
- 在选择操作对话框中,单击Invoke SQL右侧的选择。
- 在步骤配置对话框,设置SQL语句,然后单击确定。SQL语句设置为select * from task,即从task表选取所有的列数据。步骤配置完成后,Invoke SQL出现在集成流中。
- 在集成流中添加数据映射器。
- 鼠标悬停在集成流中Invoke SQL右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Source > 2-SQL Result > Document Root与Target > 3-Response > body之间单击相同字段进行映射,然后单击确认。字段对应关系如下所示。
Source目录 Source字段 Target字段(body目录) Source > 2-SQL Result > Document Root completed completed id id task task - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 在集成设计页面右上角,单击保存,防止创建的集成流丢失。List all task集成流创建完成。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
创建Create new task集成流
- 在左侧导航栏,选择集成元素 > 集成流 > Create new task。
- 在集成流中添加Database连接。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击连接,然后单击Database连接。
- 在选择操作对话框中,单击Invoke SQL右侧的选择。
- 在步骤配置对话框,设置SQL语句,然后单击确定。SQL语句设置为insert into task values (:#id, :#task, :#completed),即在task表插入新的列数据。步骤配置完成后,Invoke SQL出现在集成流中。
- 在集成流中添加第一个数据映射器。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Source > 1-Request > body与Target > 2-SQL Parameter之间单击相同字段进行映射,然后单击确认。字段对应关系如下。
Source目录 Source字段 Target字段(2-SQL Parameter目录) Source > 1-Request > body completed completed id id task task - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 在集成流中创建第二个数据映射器。
- 鼠标悬停在集成流中Invoke SQL右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Sources > 2-SQL Parameter、Sources > 3-SQL Result > Document Root与Target > 4-Response > body之间单击相同字段进行映射,然后单击确认。字段对应关系如下。
Sources目录 Sources字段 Target字段(body路径) Sources > 2-SQL Parameter completed completed id 无映射字段 task task Sources > 3-SQL Result > Document Root id id - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 在集成设计页面右上角,单击保存,防止创建的集成流丢失。Create new task集成流创建完成。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
创建Fetch task集成流
- 在左侧导航栏,选择集成元素 > 集成流 > Fetch task。
- 在集成流中添加Database连接。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击连接,然后单击Database连接。
- 在选择操作对话框,单击Invoke SQL右侧的选择。
- 在步骤配置对话框,设置SQL语句,选中找不到记录时报错,然后单击确定。SQL语句设置为select * from task where id = :#id,即从task表选取特定id列。步骤配置完成后,Invoke SQL出现在集成流中。
- 在集成流中添加第一个数据映射器。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Source > 1-Request > Parameters与Target > 2-SQL Parameter之间单击相同字段进行映射,然后单击确认。
- 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 在集成流中添加第二个数据映射器。
- 鼠标悬停在集成流中Invoke SQL右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Sources > 3-SQL Result > Document Root与Target > 4-Response > body之间单击相同字段进行映射,然后单击确认。字段对应关系如下所示。
Sources目录 Sources字段 Target字段(body目录) Sources > 3-SQL Result > Document Root completed completed id id task task - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 设置API返回主体携带错误信息。
- 在集成流中单击Provider API返回路径右上角的图标,然后单击编辑。
- 在选择组件类型对话框,选中是否在主体中包含错误信息,设置返回码保持默认值,然后单击确定。
- 在集成设计页面右上角,单击保存,防止创建的集成流丢失。Fetch task集成流创建完成。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
创建Update task集成流
- 在左侧导航栏,选择集成元素 > 集成流 > Update task。
- 在集成流中添加Database连接。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击连接,然后单击Database连接。
- 在选择操作对话框,单击Invoke SQL右侧的选择。
- 在步骤配置对话框,设置SQL语句,选中找不到记录时报错,然后单击确定。SQL语句设置为update task set completed = :#completed where id = :#id,即当task表的id列为特定值时修改completed列的值。步骤配置完成后,Invoke SQL出现在集成流中。
- 在集成流中添加第一个数据映射器。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Source > 1-Request > body、Source > 1-Request > Parameters与Target > 2-SQL Parameter之间单击相同字段进行映射,然后单击确认。字段对应关系如下所示。
Source目录 Source字段 Target字段(2-SQL Parameter目录) Source > 1-Request > body completed completed id 无映射字段 task 无映射字段 Source > 1-Request > Parameters id id - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 在集成流中添加第二个数据映射器。
- 鼠标悬停在集成流中Invoke SQL右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Sources > 2-SQL Parameter与Target > 4-Response > body之间进行字段映射,然后单击确认。字段对应关系如所示。
Sources目录 Sources字段 Target字段(body目录) Sources > 2-SQL Parameter completed completed id id - 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 设置API返回主体携带错误信息。
- 在集成流中单击Provider API返回路径右上角的图标,然后单击编辑。
- 在选择组件类型对话框,选中是否在主体中包含错误信息,设置返回码保持默认值,然后单击确定。
- 在集成设计页面右上角,单击保存,防止创建的集成流丢失。Update task集成流创建完成。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
创建Delete task集成流
- 在左侧导航栏,选择集成元素 > 集成流 > Delete task。
- 在集成流中添加Database连接。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击连接,然后单击Database连接。
- 在选择操作对话框,单击Invoke SQL右侧的选择。
- 在步骤配置对话框,设置SQL语句,选中找不到记录时报错,然后单击确定。SQL语句设置为delete from task where id = :#id,即当task表的id列为特定值时删除该行。步骤配置完成后,Invoke SQL出现在集成流中。
- 在集成流中添加数据映射器。
- 鼠标悬停在集成流中提供的API右侧的上,然后单击图标。
- 在选择组件类型对话框,单击逻辑步骤,然后单击data-mapper(数据映射器)。
- 在Source > 1-Request > parameters与Target > 2-SQL Parameter之间进行字段映射,然后单击确认。
- 在设置对话框,在选择schema列表中,选择任意类型,然后单击创建。
- 设置API返回主体携带错误信息。
- 在集成流中单击Provider API返回路径右上角的图标,然后单击编辑。
- 在选择组件类型对话框,选中是否在主体中包含错误信息,设置返回码保持默认值,然后单击确定。
- 在集成设计页面右上角,单击保存,防止创建的集成流丢失。Delete task集成流创建完成。重要 在集成设计页面时,请及时在页面右上角单击保存,以免添加的步骤丢失。
部署集成
- 登录应用集成控制台。
- 在顶部菜单栏,选择地域。
- 在左侧导航栏,选择集成 > 集成列表。
- 在集成列表页面的当前工作空间下拉列表中,选择目标工作空间。
- 在集成列表页面,选择目标集成,在该集成操作列下单击部署。
- 在部署集成对话框,选择目标环境、资源规格和资源数量,然后单击确认。
控制台会自动跳转到部署管理页面,集成示例的状态为部署中。
- 在部署管理页面,单击操作列下的绑定SLB。
- 在绑定SLB对话框选择SLB实例,然后单击确认。
绑定SLB实例完成后,在部署管理页面该集成部署记录的集成名称下出现SLB实例的服务地址。
结果验证
- 验证List all tasks,查询API详细信息。
- 在Postman上选择GET,发送http://SLB服务地址/api请求。SLB服务地址可在应用集成控制台部署管理页面目标集成的部署记录集成名称下查看。请求发送后,在Postman的Response区域返回所有API的详细信息。
- 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from task查询task表格详细信息。在MySQL客户端界面展示task表格详细信息。
- 在应用集成控制台的集成列表页面查看目标集成的执行记录。可查看List all tasks集成流的执行日志,其状态为SUCCESS。
- 在Postman上选择GET,发送http://SLB服务地址/api请求。
- 验证Create new task,新增一个API。说明 新增API的ID值不能和已有API的ID值重复,如果重复,无法新增API。
- 在Postman上发送新增API的请求。在Postman上选择POST,在Body页面输入新增API的JSON语句,然后发送http://SLB服务地址/api请求。SLB服务地址可在应用集成控制台部署管理页面目标集成的部署记录集成名称下查看。请求发送后,在Postman的Response区域返回新增API的详细信息。
- 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from task查询task表格详细信息。在MySQL客户端界面展示task表格详细信息,包含新增的API。
- 在应用集成控制台的集成列表页面查看目标集成的执行记录。可查看Create new task集成流的执行日志,其状态为SUCCESS。
- 在Postman上发送新增API的请求。
- 验证Fetch task,查询新增的API详情。
- 在Postman上选择GET,发送http://SLB服务地址/api/新增API的ID值请求。SLB服务地址可在应用集成控制台部署管理页面目标集成的部署记录集成名称下查看。请求发送后,在Postman的Response区域返回新增API的详细信息。
- 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from task查询task表格详细信息。在MySQL客户端界面展示task表格详细信息,包含新增API的详细信息。
- 在应用集成控制台的集成列表页面查看目标集成的执行记录。可查看Fetch tasks集成流的执行日志,其状态为SUCCESS。
- 在Postman上选择GET,发送http://SLB服务地址/api/新增API的ID值请求。
- 验证Update task,更新API的completed字段信息。说明 目前只支持更新API的completed字段信息。
- 在Postman上发送更新API的completed字段值的请求。在Postman上选择PUT,在Body页面输入更新APIcompleted字段值的JSON语句,然后发送http://SLB服务地址/api/需要更新API的ID值请求。SLB服务地址可在应用集成控制台部署管理页面目标集成的部署记录集成名称下查看。请求发送后,在Postman的Response区域返回更新API的详细信息,其completed值已发生变化。
- 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from task查询task表格详细信息。在MySQL客户端界面展示task表格详细信息,目标API的completed值已发生变化。
- 在应用集成控制台的集成列表页面查看目标集成的执行记录。可查看Update tasks集成流的执行日志,其状态为SUCCESS。
- 在Postman上发送更新API的completed字段值的请求。
- 验证Delete task,删除API。
- 在Postman上选择DELETE,发送http://SLB服务地址/api/需要删除API的ID值请求。SLB服务地址可在应用集成控制台部署管理页面目标集成的部署记录集成名称下查看。请求发送后,在Postman的Response区域返回空白信息。
- 使用MySQL客户端连接Datebase服务器,在MySQL客户端输入select * from task查询task表格详情。在MySQL客户端界面展示task表格详细信息,目标API已被删除。
- 在应用集成控制台的集成列表页面查看目标集成的执行记录。可查看Delete tasks集成流的执行日志,其状态为SUCCESS。
- 在Postman上选择DELETE,发送http://SLB服务地址/api/需要删除API的ID值请求。