大家好,云服务器厂商,
有很多http客户机可以使用Javascript中的http服务。关于哪一个是最好的有很多讨论,我都喜欢,但最后你只能用一个。
我个人最喜欢的是axios。它有很好的文档记录,支持许多特性,并且易于学习。这就是为什么我决定让axios用户在SAP Cloud Foundry中的生活更轻松,并创建了一个SAP cf axios库。
让我们从解释进行http调用所需的所有不同部分开始。
目的地
目的地在云驾驶舱中定义。我们使用这些目的地来配置我们的连接:
一个基本url身份验证配置代理配置
在nodejs应用程序中使用目标需要绑定到目标服务。如果目的地指向本地系统,我们必须通过云连接器连接到此服务。要通过云连接器调用服务,我们必须调整http客户机中的代理设置。要读取代理的配置和身份验证信息,我们需要将应用程序绑定到连接服务。
在我的示例中,我定义了3个服务(UAA,目的地和连接),我将服务绑定到我的批准者和服务。
Axios
https://github.com/axios/axios
当我们在nodejs中使用axios时,52返现网,我们必须创建一个AxiosRequestConfig对象,该对象指定我们需要发送到服务的方法、url、负载、调用头等属性。
axios函数的返回是在AxiosResponse对象中,我们可以读取响应头和主体以及其他内容。让我们举一个odata服务的例子https://my.site/myService。
如果我们想将一个图书实体发布到此需要身份验证的服务,云服务器促销,我们可以使用以下代码:
Axios with destination
要将Axios与destination and connectivity service一起使用,您可以在应用程序中安装sap cf Axios。
要保留axios尽可能接近标准。我决定为每个目的地创建一个axios实例。对于每个目的地,请求拦截器将在启动请求之前用目的地中的配置覆盖AxiosRequestConfig对象中的数据。让我们向服务发布一本新书。
如您所见,我们从调用中删除了baseUrl和auth属性。这些属性将从目标读取,物联网技术与应用,并由sapcf axios库注入。如果是本地服务,代理设置也将由库注入。
自己使用
让我们试试这个!
我创建了一个nodejs服务在本地运行。你可以在这里找到它:https://github.com/jowavp/show-request
刚刚运行:
服务在3002端口启动。服务的响应是发送到此服务的请求参数的表示。
让我们在本地用postman试试。这是请求:
此请求的响应如下:
这里没有什么特别之处,因为我们的请求没有发生任何事情。它是由邮递员发送给服务机构的,大数据如何处理,所以我们在邮递员身上放的东西我们会在服务机构的回复中看到。但当我们在CloudFoundry中使用sap cf axios调用本地服务时,事情会变得有趣起来。首先我们必须在cloud connector中配置服务,以便我们可以在cloud foundry中访问它。
然后我们在cloud foundry中定义一个目标,使用它的虚拟主机名指向我们的本地服务。
完成此配置后。我们部署了一个简单的nodejs服务,它将使用sapcf axios调用这个目的地。https://github.com/jowavp/sap-cf-axios-example
您可以通过运行来部署此应用程序:(您需要安装cli和mbt)
部署此应用程序后,我们可以打开审批者的url进行测试。
当我们现在查看响应时。我们看到:
如您所见,sap cf axios添加了授权头并处理了代理配置,以便在我们的本地环境中调用服务。
因此,我希望此sap cf axios能够让您在sap cloud foundry中更轻松地使用目的地。还有一些功能缺失,我会在需要时添加它们。