前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将通过Node.js构建的API部署到IBM Bluemix

将通过Node.js构建的API部署到IBM Bluemix

作者头像
念遥远
发布2018-01-15 11:29:05
2.7K0
发布2018-01-15 11:29:05

在我先前的文章中,我通过一个简单的hello world示例介绍了如何在Node.js应用程序中使用Swagger记录API。下面我将演示如何把相同的示例通过Docker部署到Bluemix,以及在调用API时如何使用[API管理服务来强制执行客户端ID和密钥,使得API所有者可以监视其API的使用情况。

将Node.js应用程序作为Docker容器部署到IBM Bluemix

首先,你需要在你项目的根目录下添加一个Dockerfile。该文档(https://www.ng.bluemix.net/docs/images/docker\_image\_ibmnode/ibmnode\_starter.htm 注:文档链接)描述了如何做到这一点。因为我不需要SSH,所以我使用一个较为简单的Dockerfile。)

代码语言:javascript
复制
FROM registry.ng.bluemix.net/ibmnode:latest

COPY . /node

WORKDIR /node

RUN npm install

EXPOSE 9080

CMD ["node", "/node/app.js"]
代码语言:txt
复制
  由于IBM Containers(托管在Bluemix上的Docker)仅支持特定的端口,所以我使用端口9080而不是原来的示例中的10010。我也必须更改app.js和swagger.yaml中的端口。为了在本地运行应用程序,您需要调用以下URL。

http://127.0.0.1:9080/hello?name=Niklas

http://127.0.0.1:9080/swagger

要构建Docker镜像并在本地运行,请在根目录调用以下命令。

代码语言:javascript
复制
docker build -t node-swagger-hello-world .

docker run --name node-swagger-hello-world -p 80:9080 -d -t node-swagger-hello-world

然后你可以在我们本地的Docker环境中运行示例。

http:// dockerhost / hello?name = Niklas

http:// dockerhost / swagger

请调用以下命令可以将镜像推送到Bluemix。

创建一个Docker容器组并且在Bluemix上运行这个示例。

之后,你可以在Bluemix上运行你的REST API。

http://node-swagger-docker-hello-world.mybluemix.net/swagger

http://node-swagger-docker-hello-world.mybluemix.net/hello?name=Niklas

使用API管理服务

代码语言:txt
复制
借助Bluemix中的API管理服务,你可以管理和监控你的API。在下一部分中,我将介绍如何在调用API时强制使用一个客户端ID和密钥,以便可以跟踪哪些应用程序调用的哪些API。可以通过指向上面的Swagger 2.0定义来导入API定义,并且也可以在API管理服务的面板中配置其他设置。

开发者需要注册应用程序来调用API应用程序。

应用程序可以调用他们感兴趣的API的计划,并通过提供客户ID和密码的方式直接从开发人员门户测试API。

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