В моей предыдущей статье я описал, как использовать 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.
После этого вы можете запустить 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.
Чтобы вызывать API-приложения, разработчикам необходимо зарегистрировать приложения.
Приложения могут подписываться на планы с интересующими их API-интерфейсами и тестировать API-интерфейсы непосредственно на порталах разработчиков, предоставляя идентификаторы и секреты клиентов.