I’ve written before about the improvements we made to the self-service API in vRealize Automation 7.0, but where APIs are concerned, working code is worth a thousand words. I’m pleased to present the vRealize Automation Reference Application, an open source sample application we developed to show the new API in action.

Login page

Login page

Catalog Items page

List of entitled catalog items with search and filtering

Machine Request page

Catalog item details and request form

We had several goals with this project:

  • Simplicity. We wanted to provide a very lightweight application that demonstrates the most common API use cases — the self-service consumption scenarios. The design is intentionally no-frills so that the data elements stand out.
  • Clarity. Any developer should be able to look at the code and understand how the API was used to implement the features of the sample application, whether you’re using another language, framework, or even no UI at all. The application follows the best practices for interacting with the catalog API.
  • Flexibility. This application is meant to be a foundation that can be a starting point for any self-service portal and that could be expanded with additional functionality in the future.

Most importantly, along the theme of drinking our own champagne, we wanted to prove to ourselves that the API we introduced in vRA 7 was really as intuitive as we wanted it to be. For a developer trying to implement an end-to-end scenario, is it clear how to navigate through the API? Is the right information available in the right context? Can we reduce multiple API calls to one?

The learning we gained from writing the application has already led us to make enhancements to the API in 7.0.1, particularly around performing actions on provisioned machines.

Machine Details page

Machine details with resource actions

As with any initial release, there’s plenty more we can do. We wanted to get this out into the world so developers can download the code and experiment with it and give us feedback. Our plan is to continue to iterate on this and keep it up to date as we roll out enhancements to vRealize Automation itself in future releases. In the meantime, if you have any use cases in mind that you’d like to see added to the reference application, please let us know.