云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名备案_国外ip代理服务器网站_高性价比

小七 141 0

本系列的上一篇文章:发现SCP工作流-实例启动。

本篇文章是本系列的一部分,可以在这里找到指南:发现SCP工作流。

在本篇文章中,我将解释如何使用Postman来探索工作流API,充分利用Postman的一些强大功能。

人们喜欢探索不同领域的API方法。我使用了各种各样的工具——我马上想到的是curl(在上一篇文章中使用,事实上)驱动HTTP会话和jq来操作复杂的JSON数据结构,这些数据结构通常在响应中返回。

有一个相对较新的孩子以Postman的形式出现在block中,它将自己描述为一个API开发环境"共享、测试、记录和监视API"。它最初是一个Chrome扩展,但也有特定于操作系统的本机版本。

您可以注册并登录到Postman,然后它会记住您的设置(很快就会派上用场),并在不同的工作站上的不同实例之间进行同步,与代码编辑器通常允许打开多个文件的方式相同,Postman允许您拥有多个请求/响应会话,并通过选项卡在它们之间切换。每个请求/响应都会在历史记录区域中被记住,但也有一个工具可以将特定的请求保存并分组到集合中。我有一个"SCP工作流服务"集合:

在一个集合中,游戏返利平台,您可以将相关请求分组到文件夹中,如您在屏幕截图中看到的("例如,新建测试工作流实例")。您甚至可以使用集合作为测试API的调用序列的形式,使用脚本工具自动设置请求和验证响应。

考虑HTTP请求有三个主要部分:

方法和URL的组合请求报头请求主体(可选)

Postman提供了一个很好的界面,允许您准备HTTP请求,有单独的授权区域、头和主体(当然还有方法和URL的主要规范)。

但是还有一些其他区域。在预请求脚本中,您可以编写在发送HTTP请求之前执行的JavaScript。在测试中,您可以编写接收到HTTP响应后执行的JavaScript。您可以使用JavaScript Postman API提供对请求和响应本身的访问,以及一些特定于Postman的特性,如全局变量和环境变量。

Postman有一个环境的概念,可以是特定于您的,也可以是共享的(如果您运行Postman Pro)。我使用环境的概念来管理我在任何给定时间基于谁登录到SCP的不同访问。例如,我有自己的私人试用帐户(P481810),随着时间的推移,物联网城市,我可能会访问工作帐户,无论是试用帐户还是生产帐户,淘客模板,以及在实践培训课程中提供的临时帐户。

环境可以包含变量,例如:

对于探索工作流API,我使用中的"basicauthorization"变量我的请求头、构造url时的'workflowservice'变量和存储传递的XSRF令牌的'xsrftoken'变量,允许我捕获"Fetch"请求的响应并将返回的令牌插入下一个POST请求。还有其他的('instanceId','taskInstanceId')我用来存储各种属性的中间值。

也许你已经注意到'workflowservice'变量的值被设置为与API"root"匹配,如前一篇文章中的题外话所述。我真的很喜欢这里干净的分隔。

让我们看看这一切是如何结合在一起的。我们将在前面的Collections屏幕截图的"newtestworkflowinstance"文件夹中使用这两个请求。它们看起来像这样:

这是第一个"Get CSRF Token"的样子:

您可以看到我在"Authorization"头中使用了"basicauthorization"环境变量。但我也在使用'workflowservice'根值来帮助构建URL–一个特定于我选择的特定环境的URL,我的P481810试用帐户的环境。换句话说,生成的URL将解析为:

(为易读而拆分)。

在收到响应后,在"Tests"区域,我还将运行一点JavaScript。是这样:

是的,返利商城,当返回响应时,它获取X-CSRF-Token头的值,该头应该包含我们请求的令牌,并将其存储在"xsrftoken"环境变量中。(我提到过CSRF和XSRF有多困扰我吗?)

这样一个请求的响应非常简单-没有正文,只有标题,大数据推荐,如图所示:

值'2d114fa00565c0997072ad2ecc1ef96'存储在'xsrftoken'中。

现在我们有了这个令牌,我们可以在这个文件夹的第二个请求中使用它来创建一个新的工作流实例。

让我们看看那个请求是什么在Postman中看起来,已存储并准备就绪:

(如果您将鼠标悬停在Postman上,可以看到Postman显示变量的值和范围)。

工作流定义本身非常简单,这里不感兴趣。我们将在另一篇文章中讨论工作流定义。但是如果你好奇的话,这就是正文区域的内容:

查看请求头,我们仍然使用'basicauthorization'变量,当然,但是现在我们可以在'X-CSRF-token'头中提供XSRF令牌,其值设置为我们在上一次调用中刚刚收到的令牌。很好!

由于我们在收到响应时有JavaScript可供使用,我们不妨将创建的工作流实例的ID记录在环境变量instanceId中。这是"Tests"区域的JavaScript:

最后,请注意由可变工作流服务"root"和特定API资源"/v1/workflow instances"构建的可爱URL,我们将POST请求发送到:

下面是响应的样子,顺便说一句: