前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从客户端Web应用程序访问Bluemix服务

从客户端Web应用程序访问Bluemix服务

作者头像
古玉修
发布2018-01-05 16:46:49
3.6K0
发布2018-01-05 16:46:49

IBM Cloud PaaS 云平台即服务基于paas平台架构开放标准开发,提供灵活云环境,可作为服务交付到公共云或者专用或内部部署环境中,快速适应各类企业IT系统跨多个领域开发和部署应用。IBM Cloud 提供超过100多种服务,例如数据库和认知服务。这些服务提供需要密钥的API。在Bluemix上托管的Cloud Foundry应用或Docker容器可以从环境变量中访问这些凭据从而调用Bluemix服务。

本文介绍如何从Web应用调用Bluemix服务。

最近,我介绍了如何通过Docker和nginx将Angular和其他Web应用(例如React或Vue.js)部署到Bluemix。为了允许Web应用调用REST API,nginx充当了可以在您的nginx.conf文件中配置的代理身份。

我无法弄清楚如何配置/扩展nginx的代理来访问环境变量。

这就是为什么我用Node.js和Express框架构建的Web服务器取代了nginx。

Express可以使用各种代理服务器实现,或者您可以自己编写一个简单的代理服务器。以下代码显示GET请求的代理,该代理读取Watson对话服务的凭据并将其添加到请求中。

router.get('*',(req,res)=> {

var vcapCredentials = readCredentials();

var credentials = req.get('Authorization');

if(vcapCredentials.username && vcapCredentials.password){

credentials =“Basic”+ new Buffer(vcapCredentials.username +':'+ vcapCredentials.password).toString('base64');

}

var url ='https://gateway.watsonplatform.net/conversation'+ req.url;

var newRequest = request.get({

uri:url,

headers:{

'Content-Type':'application / json',

'Authorization':credentials

}

});

newRequest.pipe(RES);

});

示例应用的完整源代码由GitHub上提供。

这个截图显示了从Web应用到Node.js后端的请求。使用/ credentials,Web应用将检查密钥是否存在,这是在将Watson Conversation服务绑定到Node.js应用程序时的情况。如果存在,用户名和密码的两个输入字段将被禁用。 调用'/ conversation / api / v1 / workspaces'请求代理。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档