Modern applications and services usually expose their functions via REST; moreover, modules and components also make use of external services that are exposed as REST. Thus, developers often need to design RESTful services and write REST service clients. It’s a given in this kind of work that these services will be called thousands of times during the development process (developers need to understand the API, as well as the messages and the resources involved), and even after, to make sure everything works as desired.
tl;dr: we provision Kubernetes clusters on different cloud providers and deploy apps through a RESTful API; for testing those, we use Postman.
This post will attempt to provide insight into how we at Banzai Cloud deal with REST APIs, and what tools we use in order to be as productive as possible.
As previously mentioned, developers need to call external and/or internal REST services a lot, in lots of environments. This can take up a great deal of a developer’s valuable time (the design and implemention of an easily manageable infrastructure is not trivial). Luckily, there are tools that can help us expedite the work involved.
The first tool worth mentioning is curl
. It’s always at hand and comes with everything you need to issue rest calls and, combined with a few other tools (eg.: jq), to analyze and visualize resources. However, some of us at at Banzai Cloud prefer Postman instead, since its rich feature set makes our work more enjoyable.
(Postman
is available as a chrome
plugin, and as native app for most popular OSes; it’s recommended that you use the native app)
Postman's
most important and best-loved features are:
- it has a nice, clean user interface that’s easily intuited
- it has sets of rest calls - named
collections
- that can be saved, reused and shared - environments allow us to quickly switch between different setups (eg.:dev, qa, local, cloud)
- the context of rest calls (eg.: authorization, headers) is easy to set up
Tests
allow automatic validation via the parsing of responses, modifying the environment, and thus subsequent REST calls can reuse the results of a previous call
These are just a few of the features we use on a daily basis (for more information check Postman’s documentation).
Banzai Cloud’s Pipeline application has a REST interface with operations to provision Kubernetes clusters on different cloud providers and manage deployments on provisioned clusters. We’ve developed and published a Postman Collection
that tests some of these features, provisions Kubernetes clusters in the cloud and deploys applications (using Helm charts).
For this and to create/configure a Postman environment, you’ll need a running Pipeline API