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

在我先前的文章中,我通过一个简单的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。)

FROM registry.ng.bluemix.net/ibmnode:latest

COPY . /node

WORKDIR /node

RUN npm install

EXPOSE 9080

CMD ["node", "/node/app.js"]
  由于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镜像并在本地运行,请在根目录调用以下命令。

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管理服务

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

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

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

本文的版权归 念遥远 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏崔庆才的专栏

腾讯云上 Docker 的安装方式

Docker 是一种容器技术,它可以将应用和环境等进行打包,形成一个独立的,类似于 iOS 的 APP 形式的「应用」,这个应用可以直接被分发到任意一个支持 D...

2.4K0
来自专栏吴伟祥

Docker学习——数据管理、使用网络(三)

这一章介绍如何在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种方式:

942
来自专栏应用案例

docker搭建私有仓库

序言 黄金指,一不小心就弄出一个故障。。。好可怕好可怕,我的小心脏。。。我的小心眼。。。 我这么信任你,你居然欺骗我。。。。****,这么大的坑,填不满啊。。。...

4627
来自专栏宝哥的专栏

Docker系列学习文章 - docker基本使用(四)

| 导语通过上一篇文章的学习,我们把docker安装好了,那么安装好docker后该怎么使用呢?本篇文章通过一两个例子跟大家讲述下docker的基本使用。然后,...

1.7K22
来自专栏一个爱瞎折腾的程序猿

docker 及 docker-compose 的快速安装和简单使用

通过下面的一个脚本可以简单快速的创建一个镜像并运行起来 大概看下应该就可以大概明白镜像的基本使用了

3612
来自专栏搜云库

Ubuntu 17.04 x64 安装 Docker CE

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的运行效率,降低了云计算资源供应的成本!使用 Docker,可以让应用的部署、测...

35610
来自专栏云计算

使用ACS和Kubernetes部署Red Hat JBoss Fuse

Red Hat JBoss Fuse十多年来一直是构建Java Web / RESTful服务的事实标准。但是,你该如何在当今以云为中心的世界中有效运行?如您所...

27510
来自专栏程序员的诗和远方

设置 git/npm/bower/pip/gem镜像或代理

有时候因为墙或者速度的原因使用git/npm/bower/pip/gem等工具的时候需要设置镜像或者代理,记录一下,不用到处找。 git 设置: $ ...

5067
来自专栏熊二哥

SpringBoot详细研究-04部署测试与监控

这部分的内容实际就是devops的主要工作内容,当然一名合格的程序要也需要掌握这部分的知识。 ? ? 热部署 简单来说,在开发时,修改了任何的代码,I...

2549
来自专栏实战docker

Docker下dubbo开发,三部曲之二:本地环境搭建

在上一篇文章《Docker下dubbo开发,三部曲之一:极速体验》中,我们快速体验了dubbo服务的注册、发现、调用,今天我们一起在本地制作一套这样的环境,经过...

3567

扫码关注云+社区

领取腾讯云代金券