在我先前的文章中,我通过一个简单的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。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有