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

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

作者头像
老人雨何
发布2018-01-15 15:33:51
3.3K0
发布2018-01-15 15:33:51

Bluemix是IBM云平台可以利用100多种服务构建和托管的应用程序,例如数据库和认知服务。这些服务提供需要凭据的API。Bluemix上托管的应用程序,作为Cloud Foundry应用程序或Docker容器,可以从环境变量访问这些凭据。本文介绍如何从客户端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对话服务的凭据并将其添加到请求中。

代码语言:js
复制
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 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档