用Postman Flows打造你的专属API:外部公开,轻松上手!

引言

Postman Flows 是一个使用 GUI 进行无代码 API 调用流程创建的服务。这篇文章我尝试使用 Flows 来构建将 Momento Topic 中的数据保存到 TiDB 的保存 API,因此想分享一些使用过程中的技巧等。

实现内容

将从 Momento Topics 配发的 JSON 数据保存到 TiDB 中。通过 Momento 使用 webhook 在数据发布时调用 API。保存到 TiDB 的过程是调用 TiDB 端提供的 API。简而言之,这类似于通过 Momento Topics 事件触发的 Lambda + API Gateway,但实际操作只是将接收到的 JSON 从左到右流转,因为入口和出口都是 REST API,所以使用 Postman 进行集中管理和测试会比较方便。

准备 - 将发送源 API 导入为 Postman 的集合

导入发送目标的 API 定义

如果将发送目标的 API 导入到 Postman 中,您可以利用 Postman 的变量定义,实现更灵活的处理(后续会详细介绍)。在这里,我们将读取 TiDB 的 API 定义。(关于 TiDB 端 API 的创建在此不作详述)

这个定义的形式是这样的,可以通过 OpenAPI 格式的 JSON 文件获取。

 通过导入这个定义,您可以将其作为集合导入到自己的工作区中。

将发送目标 API 的各种参数变量化

将 API 调用时设置的请求参数、请求体和认证信息等设置为变量。本次调用的 API 没有请求参数,仅有请求体。认证信息使用摘要认证。

首先设置认证信息。认证信息在集合的顶层进行设置。在这里,我们使用 {{PUBLIC_KEY}} 和 {{PRIVATE_KEY}} 进行设置。在 Postman 中,变量的格式为 {{变量名}}。这些变量可以在 Flows 中以及通过多种方法进行设置。

 对请求体使用变量进行定义。本次由于发送源和 JSON 的格式一致,因此决定直接使用发送源的 JSON,将其全部设置为变量。在具体的 API 的 body 标签下,选择 raw 并输入 {{rate_json}}。

 

 完成以上步骤后,请保存。

设置环境变量

接下来,将之前定义的三个变量 {{PUBLIC_KEY}}、{{PRIVATE_KEY}} 和 {{rate_json}} 设置为环境变量。创建用于 API 测试的 TEST 环境和用于生产的 PROD 环境。在 TEST 环境中,将 JSON 字符串设置为 {{rate_json}},而在 PROD 环境中,由于直接使用调用源的 body,这部分就不需要设置了。

 创建完成后,请务必保存。

 创建好环境变量后,选择相应的环境并运行 API 测试。在 API 界面的右上角有一个环境选择下拉菜单。在这里选择所需的环境。

最后只需执行测试即可。请检查 header 和 body 是否正确设置,并在控制台中查看结果。可以通过环境选择下拉菜单旁边的 Environment Quick Look 来确认环境变量是否正确设置。

 

创建 Flows

设置 API 调用

在 Flows 中进行新建操作,在 Start 后立即添加 API 调用。在 API 调用的下拉菜单中,可以选择之前创建的 rate_jpn 集合。系统会自动识别 body 的变量定义,并以变量形式显示。在这时,可以选择环境,因此选择 PROD 环境。

JSON 转换

调用源 Momento 传递的 body 的 JSON 定义如下所示。您需要从中提取 text 的 JSON,并将其设置为 rate_json

{"cache": "momento-exchange","topic": "rate","event_timestamp": 1703245656262,"publish_timestamp": 1703245656262,"topic_sequence_number": 418,"token_id": "","text": "{\"best_bid\":6594882,\"best_ask\":6598048,\"orig_timestamp\":\"2023-12-22T11:47:36.1833839Z\",\"timestamp\":\"2023-12-22T11:47:36.250Z\"}"
}

在这里出现了一个小问题。虽然不确定是否故意如此,但 Momento 发送的 JSON 似乎被解释为文本。这可能是因为请求头中没有指定 Content-Type,导致调试时遇到了一些困难。我们需要将以文本形式传递的 body 转换为 JSON。为了实现这一处理,Postman Flows 提供了 Evaluate 块。

在这个块中,可以使用 FQL 这种简易语言编写表达式。在这里,我们将编写一个将输入转换为 JSON 的表达式。

  1. 拖动 rate_json 左侧的连线,选择 Evaluate 块,并将 Evaluate 块的输入连接到 Start。
  2. 在 Evaluate 块中设置变量 input。路径可以为空。这样,整个 body 将被设置到 input 变量中。
  3. 编写 FQL 表达式:$jsonParse(input)
  4.  回到 rate_json 侧,将 text 设置为 rate_json

这样就完成了。

测试

为了调试,可以在 Start 和 API 调用的 Error 处设置 Log。传递给 Log 的输入将会输出到 input 中。 整体流程如下图所示。

 点击左下角的 Webhook URL 预览按钮,打开 API 测试界面。在 Body 中设置测试用的 JSON 并执行测试。

 也可以从 Flows 界面上查看执行结果。

此外,还可以在控制台中查看 API 调用和日志的内容。

 

发布

如果没有问题,点击 Webhook URL 下方的 Publish 按钮,即可将其部署到该 URL。可以从外部进行访问以进行确认。

总结

使用 Postman Flows 可以在无需编写代码的情况下创建涉及数据转换的 API 调用流程。此外,由于 Postman 平台的集成,您可以利用与 API 测试相同的变量,这大大提高了便利性。虽然这次是一个简单的示例,但通过使用块和 FQL 可以编写更复杂的转换,因此对于 API 集成开发非常有效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3086. 拾起 K 个 1 需要的最少行动次数

3086. 拾起 K 个 1 需要的最少行动次数 题目链接:3086. 拾起 K 个 1 需要的最少行动次数 代码如下: //参考链接:https://leetcode.cn/problems/minimum-moves-to-pick-k-ones/solutions/2692009/zhong-wei-shu-tan-xin-by-endlesscheng-h972 class Sol…

CrowdStrike引发全球微软系统大宕机:事故解析及网络安全反思

引言 近日,一次由CrowdStrike推送的更新引发了全球IT系统大规模故障。超过850万台电脑受到影响,涵盖各个行业和领域,引发了广泛关注和讨论。本文将详细解析此次事件的来龙去脉,评估其影响,并探讨网络安全的现状及未来…

C++ 栈( stack )学习

目录 1.栈 2.模拟栈 1.1.入栈( push ) 1.2.出栈( pop ) 1.3.获取栈顶元素( top ) 3.直接使用栈( stack ) 3.1.导入头文件并创建栈 3.2.栈的操作 3.2.1.入栈( push ) 3.2.2.出栈( pop ) 3.2.3.获取栈顶元素( top ) 3.2.4.获取栈中元素个数( size ) 3.2.5.判断栈是否…

代码随想录算法训练营day8 | 344.反转字符串、541.反转字符串 II、卡码网:54.替换数字

文章目录 344.反转字符串思路 541.反转字符串 II思路 卡码网:54.替换数字思路复习:字符串 vs 数组 总结 今天是字符串专题的第一天,主要是一些基础的题目 344.反转字符串 建议: 本题是字符串基础题目,就是考察 revers…

ChatGPT:宽列数据库是什么?

ChatGPT:宽列数据库是什么? 宽列数据库(Wide-Column Store)是一种 NoSQL 数据库,它的设计灵感来自于 Google 的 Bigtable。宽列数据库适用于处理大规模的分布式数据存储,特别是在需要高性能读写、灵活的数据…

docker挂载部署reids6.2.1

1.拉取镜像 docker pull redis:6.2.12.创建挂在目录(根据自己要求修改具体目录) mkdir -p /home/admin/redis/{data,conf}3.在/home/admin/redis/conf目录下创建redis.conf文件 cd /home/admin/redis/conf touch redis.conf4.复制下面文本到redis.conf…

深入理解 Laravel 中的会话管理

引言 会话管理是 Web 应用中一个至关重要的功能,它允许应用识别并跟踪用户的会话状态。Laravel 提供了一个强大而灵活的会话管理系统,使得开发者可以轻松实现用户状态的跟踪和管理。本文将详细介绍 Laravel 中的会话管理机制,包括会话的创建…

浅析JWT原理及牛客出现过的相关面试题

原文链接:https://kixuan.github.io/posts/f568/ 对jwt总是一知半解,而且项目打算写个关于JWT登录的点,所以总结关于JWT的知识及网上面试考察过的点 参考资料: Cookie、Session、Token、JWT_通俗地讲就是验证当前用户的身份,证明-…

不断把别人“装”进我们的灵魂口袋

嘿,朋友们!今天我们来聊聊一种超酷的能量——本色示人。这不是什么秘密武器,但它比任何超能力都来得实在。 第一部分:本色示人,能量界的“超级赛亚人” 1.1 坦诚的超能力 想象一下,如果你的内心强大到可以…

使用SpringBoot中@Scheduled注解应用场景和示例代码

概述 Scheduled注解可以应用在方法上,用于指定方法的执行时间。它有几种常见的用法,可以设置固定的时间间隔、固定的延迟时间、或者使用Cron表达式来定义更复杂的调度规则。 应用场景 定时任务执行:例如每天凌晨执行数据备份。定时报表生成…

Window部署Ollama+Qwen2.0+Open-WebUI

文章目录 Windows下安装Docker安装Docker检查是否安装成功, 出现版本即为安装成功安装Ollama启动 Ollama 并拉取模型(选做) 修改默认地址和端口(选做) Ollama 进行跨域配置安装open-webui Windows下安装Docker 准备条件 开启Hyper-V,在“启用或关闭Windows功能”里…

Java中的BigDecimal

BigDecimal 是 Java 中用于高精度计算的类,它主要用于处理非常大或非常精确的浮点数,特别是那些需要精确小数点的场景,比如金融计算。由于 float 和 double 类型在进行运算时可能会产生精度丢失的问题,BigDecimal 提供了一种解决方…

C语言 #指针数组 #数组指针 #数组参数、指针参数

文章目录 前言 一、指针数组 1、概念: 2、指针数组有什么用呢? 二、数组指针 1、数组指针的定义 2、数组名与 &数组名 的区别 3、数组指针如何初始化? 4、数组指针的用法 三、根据代码区分 指针数组 和 数组指针 四、数组参数、指针参数 …

软件-vscode-plantUML-drawio

文章目录 vscode基础命令 实操1. vscode实现springboot项目搭建 (包括spring data jpa和sqlLite连接) PlantUMLDrawio基础实操 vscode 基础 命令 启动mysql命令 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD123456 -p 3306:3306 -d my…

Shell编程之正则表达式与文本三剑客

目录 一、正则表达式 1.引言--什么是正则表达式 1.1正则表达式的功能 2.基础正则表达式(BRE) 2.1特殊字符 2.2定位符 2.3非打印字符 3.扩展正则表达式(ERE) 4.元字符操作的案列 二、命令小工具 1.cut:列截取工具 2.sort排序 …

【Android】使用ViewPager2与TabLayout实现顶部导航栏+页面切换

【Android】使用ViewPager2与TabLayout实现顶部导航栏+页面切换 TabLayout与ViewPager2概述 TabLayout TabLayout 是 Android 支持库中的一个组件,它是 Design 支持库的一部分。TabLayout 提供了一个水平的标签页界面,允许用户在不同的视图…

解决Todesk远程连接没有接显示屏的服务器,出现黑屏现象

解决办法就是虚拟出来一个显示屏 通过终端安装虚拟显示器软件。 $ sudo apt-get install xserver-xorg-core-hwe-18.04 $ sudo apt-get install xserver-xorg-video-dummyubuntu20.04、 ubuntu22.04都适用 2. 添加配置文件 sudo vim /usr/share/X11/xorg.conf.d/xorg.conf…

TensorFlow 可用的植物分类模型有哪些,各有什么优缺点

在树莓派上运行CentOS 7,并使用TensorFlow Java版本实现植物分类功能可以通过以下步骤实现。以下是详细的指导: 一、安装和设置环境 1. 更新系统并安装基本工具 确保你的CentOS 7系统是最新的,并安装必要的工具: sudo yum update -y sudo yum install -y wget unzip gi…

CogVideo 实测,智谱「清影」AI视频生成,全民免费,连 API 都开放了!

不得不说,AI 视频生成界最近非常火热~ 前有快手「可灵」开放内测,一下子带火了老照片修复,全网刷屏: 怕是你还没拿到内测资格,被称为 “国货之光” 的「可灵」就结束了免费无限量模式。每天只有66点的免费额度&#x…

鸿蒙(API 12 Beta2版)【创建NDK工程】

创建NDK工程 下面通过DevEco Studio的NDK工程模板,来演示如何创建一个NDK工程。 说明 不同DevEco Studio版本的向导界面、模板默认参数等会有所不同,请根据实际工程需要,创建工程或修改工程参数。 通过如下两种方式,打开工程创…