如何从云功能调用外部REST API

在之前的博客文章中,我展示了如何创建您的第一个云功能 (以及一个视频 )。 您的云函数很可能需要调用外部REST API。 以下教程将向您展示如何创建此类功能(非常简单)。

  1. 登录到IBM Cloud帐户
  2. 点击目录
  3. 删除标签:lite过滤器并键入函数
  4. 单击功能
  5. 单击开始创建按钮
  6. 点击创建动作
  7. 对于动作名称,输入一个笑话 ,然后单击创建按钮。 Hello World消息将创建一个新的云功能
  8. 将函数代码替换为以下代码,该代码调用第三方REST API,该API返回一个随机笑话:
    var request = require("request");function main(params) {var options = {url: "https://api.icndb.com/jokes/random",json: true};return new Promise(function (resolve, reject) {request(options, function (err, resp) {if (err) {console.log(err);return reject({err: err});}return resolve({joke:resp.body.value.joke});});});
    }
    • 代码很简单。 它使用请求 Node.js包连接到外部REST API
    • 外部REST API返回一个随机笑话
    • JavaScript Promise用于调用REST API
    • 最后,cloud函数以JSON格式返回响应
  9. 现在,单击“ 保存”按钮以保存代码。 保存代码后,按钮将变为Invoke 。 单击按钮以调用该功能。 在右侧面板中,您应该看到带有随机笑话的输出:
    {"joke": "Project managers never ask Chuck Norris for estimations... ever."
    }

在IBM Cloud Functions编辑器中的外观如下:

云功能代码

云功能代码

当然,您也可以使用CLI构建和测试云功能。 我将在另一篇博客文章中介绍。

现在,让我们将此云函数公开为REST API,以便我们可以在控制台外部调用它。 实际上,一旦我们将其设为Web Action,便可以直接从浏览器调用它。

  1. 在左侧,单击“ 端点”
  2. 选中“ 启用为Web操作”,然后单击“ 保存”。
  3. 复制网址并输入浏览器的地址栏

这是在Firefox中的外观:

调用云功能

那很容易,对吗?

在此博客文章中,您学习了如何创建一个调用外部(第三方)API的云函数。 即使最简单的应用程序也很有可能需要从外部API获取数据,因此这是一个很好的示例/模板。

翻译自: https://www.javacodegeeks.com/2018/07/invoke-external-rest-api-cloud-function.html

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

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

相关文章

sinx泰勒展开_高考中怎么用泰勒公式?

好久没有更新了,最近一直在准备天津市高数竞赛,今天才有空写高考的文章看,并且运用这篇文章的前提要求是已经掌握了绝大多数的高考题型然后了解泰勒拓展知识面什么是泰勒公式?你去百度肯定会有一大堆理论给你解释,今天…

java selenium 日志_java - 支持selenium日志_java_酷徒编程知识库

在自動測試中,Chrome創建了大量日誌,System.setProperty("webdriver.chrome.silentOutput","true");ChromeOptions options new ChromeOptions();options.addArguments("--disable-logging","--log-levelOFF",…

机器学习分类算法_机器学习分类算法

人们曾在自身的神经元得到启发,将机器学习中给出的特征输入与权重之积作为输出与阈值作比较,得到0或者1的输出。这就是我们感知器的实现原理感知器在实现过程中的步骤如下:①将权值初始化称为一个很小的向量②迭代训练所有样本:计…

scala 异步调用_非阻塞异步Java 8和Scala的Try / Success / Failure

scala 异步调用受Heinz Kabutz最近的时事通讯以及我在最近的书中研究的Scala的期货的启发,我着手使用Java 8编写了一个示例,该示例如何将工作提交给执行服务并异步地响应其结果,并使用了回调。无需阻止任何线程等待执行服务的结果。 理论认为…

java简单的事务单元_junit 单元测试事务自动回滚(亲测有效)

junit 单元测试事务会自动回滚。通过Rollback(true)注解来实现,默认是true,事务会回滚,可以不写。false时事务不会回滚,数据会写到数据库中。实例:package com.xiaolyuh.service;import java.util.Date;import org.jun…

linux系统如何打开python_手把手教你在Linux系统下使用Python虚拟环境

点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书今日鸡汤夕阳无限好,只是近黄昏。/1 前言/Hello小伙伴们,你们好,又是日常get新技能的一天,今天,咱们来整一…

Java EE 7中的资源和依赖注入

1.概述 上下文和依赖注入(CDI)是Java EE的一项功能,可帮助融合Java EE 6和更高版本中包含的平台的Web层和事务层。 从技术角度来看,这意味着CDI提供了依赖项注入框架,并且还管理了依赖项的生命周期。 今天在本教程中&…

java wrap方法_Java WritableCellFormat.setWrap方法代码示例

import jxl.write.WritableCellFormat; //导入方法依赖的package包/类/*** param workSheet to add the help to* param table to fetch metadata from* param startRow to start adding rows at* param helpTextRowNumbers - map to insert row numbers for each help field i…

python创建tcp socket_Python Socket如何建立TCP连接

在 Python 程序中创建 TCP 服务器时,创建通用 TCP 服务器的一般演示代码如下。需要记住的是,这仅是设计服务器的一种方式。一旦熟悉了服务器设计,可以修改下面的代码来操作服务器。ss socket() #创建服务器套接字ss.bind() #绑定套接字与地址…

ubantu java编辑器_Linux Ubuntu中最好的代码编辑器 程序员都这么看吗?

【IT168 应用】Linux Ubuntu 中最好的代码编辑器是哪个 ? 这要看程序员的使用习惯和喜好了,Atom、Brackets、Sublime Text 是最常用的三个,也许程序员们还有更喜欢的。AtomAtom 是流行,而且十分友好的文本编辑器,而且还可以嵌入到…

apache camel_Apache Camel –从头开始开发应用程序(第1部分/第2部分)

apache camel开始之前 前段时间,我写了一篇关于Spring Integration的教程,以演示如何在受现实发票处理系统启发的示例应用程序中使用Spring Integration。 我对此非常满意,因此我决定向您展示如何使用Apache Camel(Spring Integra…

python websocket异步高并发_高并发异步uwsgi+web.py+gevent

为什么用web.py?python的web框架有很多,比如webpy、flask、bottle等,但是为什么我们选了webpy呢?想了好久,未果,硬要给解释,我想可能原因有两个:第一个是兄弟项目组用webpy&#xff…

提示:通过URL激活并发送参数

世界上最安全的密码是不存在的密码。 使用完全随机的密钥从等式中删除用户。 公平地说,这有一些缺点,并且密码仍然存在于某个地方(在您的电话/电子邮件中),但通常效果很好。 诀窍很简单,如果我们想对用户进…

weblogic创建域后启动不了_摩托车淋雨后启动不了什么原因?如何解决?

图文是工作,视频是生活。大家好,我是 骑士分享 欢迎您的关注!摩托车淋雨后启动不了什么原因?如何解决?这种现象对于电喷车型来说发生的几率并不大,原因就在于电喷车型的线路防水能力会更强,供油…

前端开始学java_[Java教程]开启前端学习之路

[Java教程]开启前端学习之路0 2014-06-10 17:00:06前言第一次在博客园写博客,写写自己开启前端学习之路。应该是受邢师兄的影响吧,不得不说邢师兄人很好,学习也很认真,师兄的前端也是自学的,但是学的很好,大…

python 傅里叶_基于python的图像傅里叶处理

import numpy as npimport matplotlib.pyplot as pltx np.linspace(-10, 10, 1000)a np.cos(x)b a np.cos(3 * x)# d np.log(x)c b np.cos(7 * x)d c - np.cos(10 * x)plt.subplot(2, 2, 1)plt.plot(x, a, label‘$cos(x)$‘, color‘green‘, linewidth1)plt.title(&q…

xalan_如何以10倍速加速Apache Xalan的XPath处理器

xalan一段时间以来, Apache Xalan中存在一个令人尴尬的错误,该错误是XALANJ-2540 。 此错误的后果是Xalan每次XPath表达式求值将内部SPI配置文件加载数千次 ,可以很容易地进行如下测量: 这个: Element e (Element)do…

EMUI10安装java_linux ubuntu系统安装java jdk和配置环境,pycharm安装

最近想使用pycharm,可是要想搭建java 环境,搞了很久才搞定,网上很多资料都是没用的。记录下来以后有用。首先加下载jdk安装包。我下的是jdk-6u37-linux-x64.bin,我把jdk安装在usr/lib/jvm1.sudo cp jdk-6u37-linux-x64.bin /usr/lib/jvm #将安…

python gevent async_python的异步初体验(gevent、async、await)

网络爬虫,这种io高密集型的应用由于大部分的时间在等待响应方面,所以CPU的使用率一直不高,速度也不快,为了解决这些问题,我们使用异步的方式来进行爬虫程序。串行的时候,如果我们要爬一个网站,那…

JEP 181不兼容,嵌套类/ 2

JEP 181是基于嵌套的访问控制https://openjdk.java.net/jeps/181 。 它是在Java 11中引入的,它故意引入了与先前版本的不兼容性。 这是一个很好的例子,与Java的先前版本兼容并不是刻板的规则,而是保持语言的一致性和稳定发展。 在本文中&…