This is a blog about the best practices to develop, test, debug and scale REST APIs in an OpenStack cloud. OpenStack is a great way to deploy a cloud in data centers and is one of the most popular open-source projects to deploy highly-scalable clouds. OpenStack is all about RESTful services. Every service in OpenStack talks to every other service using REST APIs. As a cloud operator deploying OpenStack, it is very important to understand how REST APIs work in order to debug and scale an OpenStack cloud effectively.
What is a RESTful service?
Representational State Transfer (REST) is a stateless, client-server based, cacheable web service
Uses HTTP protocol for communication
Data is considered as a “resource” and accessed using Uniform Resource Identifiers (URIs) that typically look like a web link
REST supports the following HTTP cache-control headers:
Bulk REST operations and REST API batching
Bulk REST operations allow us to perform REST operations (GET, POST, PUT, DELETE) on bulk (more than one) objects (networks, ports, subnets, etc) at once. This reduces the number of REST messages between client and the server.