Статьи

Развертывание API, созданных с помощью Node.js, в IBM Bluemix

В моей предыдущей статье я описал, как использовать Swagger для документирования API в приложениях Node.js с помощью простого примера hello world. Ниже я продемонстрирую, как развернуть тот же пример в Bluemix через Docker и как использовать службу управления API для принудительного применения идентификаторов и секретов клиентов при вызове API, чтобы владельцы API могли контролировать использование своих API.

Развертывание приложений Node.js в IBM Bluemix в виде Docker-контейнеров

Сначала вам нужно добавить Dockerfile в корневой каталог вашего проекта. Документация описывает , как это сделать. Поскольку мне не нужен 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 (Docker, размещенный в Bluemix) поддерживает только определенные порты, я использую порт 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, выполните следующие команды.

Для запуска примера в Bluemix создайте группу контейнеров Docker.

swaggerdockernode

После этого вы можете запустить REST API в Bluemix.

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

Использование службы управления API

С помощью службы управления API в Bluemix вы можете управлять и контролировать свои API. В следующей части я опишу, как применять идентификатор клиента и секрет при вызове API, чтобы вы могли отслеживать, какие приложения вызывали какие API. Определение API можно импортировать, указав на определение Swagger 2.0, приведенное выше, а дополнительные параметры можно настроить на инструментальной панели службы управления API.

swaggerdockernodeapi

Чтобы вызывать API-приложения, разработчикам необходимо зарегистрировать приложения.

swaggerdockernodeapp

Приложения могут подписываться на планы с интересующими их API-интерфейсами и тестировать API-интерфейсы непосредственно на порталах разработчиков, предоставляя идентификаторы и секреты клиентов.