Visually develop REST APIs in Node and monitor them on Bluemix

Last month IBM acquired StrongLoop, a company that provides functionality to power the API economy via Node in enterprises. Specifically StrongLoop provides capabilities to develop REST APIs in Node.js, access them easily from various clients including mobile apps and manage and monitor them in enterprises. Below is a high level description and some resources how you can use these features on IBM Bluemix.

In the easiest case REST APIs can be developed visually using a web tool called StrongLoop Arc without any programming. Models can be created either from scratch or imported from databases (schemas). Based on the models REST APIs with the typical CRUD and list operations are generated automatically and exposed in the Swagger API format. Models are bound to data sources like MySQL or MongoDB to persist and read data.

There are three main components:
1) The generated and potentially manually extended Node.js application
2) StrongLoop PM (process manager) which is the ‘container’/runtime for the Node application(s)
3) StrongLoop Arc which is the tool to define models and datasources and manage applications

In order to use StrongLoop Arc on Bluemix the StrongLoop Arc starter is provided. Alternatively you can deploy Arc via the Bluemix deploy button. When Arc is deployed to Bluemix you can manage applications by pointing Arc to process manager(s). In order to define models and data sources you need to install Arc locally.

In order to use StrongLoop PM on Bluemix you can use the LoopBack Starter which also comes with a sample application or deploy the sample via the deploy button. Alternatively you can run a Docker container based on the ibm-node-strong-pm image. The generated Node applications are not deployed standalone on Bluemix but always as part of a process manager.

StrongLoop comes with several built in data source connectors as well as connectors provided by the community. Andrew Trice documented how to use Cloudant on Bluemix as data source and Arpitha Myla described how to use a MySQL database.

For more complex scenarios StrongLoop provides several ways to extend and modify models, for example you can create relations between models. If a simple mapping of models to database tables doesn’t work for you, logic for REST APIs can be implemented via Node.js. This is necessary if you don’t want to expose CRUD operations for resources but rather have higher level APIs that might not map to just one resource.

In addition to REST APIs StrongLoop also provides functionality to manage and monitor applications. To find our more about this watch the video Step by Step How to Deploy Z on the IBM Bluemix and the video Integration of Instant Runtimes and API Capabilities. Furthermore StrongLoop provides Client SDKs to access REST APIs easily from web and mobile applications.

There are many more features StrongLoop provides. Read the documentation, the article Getting Started With Bluemix and StrongLoop and the blog entry Getting Started With IBM MobileFirst and Node.js APIs built with LoopBack.