Select a language
What is a REST API?
A REST API (also known as RESTful API) is an application programming interface that conforms to the constraints of REST architecture. REST stands for representational state transfer.
An API, or application programming interface, is a set of definitions and protocols for building and integrating application software. It’s sometimes referred to as a contract between an information provider and an information user—establishing the content required from the consumer (the call) and the content required by the producer (the response). For example, the API for a weather service could specify that the user supply a zip code and that the producer reply with a 2-part answer, the first being the high temperature, and the second being the low.
In other words, if you want to interact with a computer or system to retrieve information or perform a function, an API helps you communicate what you want to that system so it can understand and fulfill the request.
You can think of an API as a mediator between the users or clients and the resources they want to get. It’s also a way for an organization to share resources and information while maintaining security and control—determining who gets access to what.
Another advantage of an API is that you don’t have to know the specifics of how your resource is retrieved or where it comes from.
REST is a set of architectural principles, not a protocol or a standard. API developers can implement REST in a variety of ways.
In order for an API to be considered RESTful, it has to conform to these criteria:
- A client-server architecture made up of clients, servers, and resources, with requests managed through HTTP.
- Stateless client-server communication, meaning no client information is stored between requests and each request is separate and unconnected.
- Cacheable data that streamlines client-server interactions.
- A uniform interface between components so that information is transferred in a standard form. This requires that:
- resources requested are identifiable and separate from the representations sent to the client.
- resources can be manipulated by the client via the representation they receive because the representation contains enough information to do so.
- self-descriptive messages returned to the client have enough information to describe how the client should process it.
- hypermedia, meaning that after accessing a resource the client should be able to use hyperlinks to find all other currently available actions they can take.
- A layered system that organizes each type of server (those responsible for security, load-balancing, etc.) involved the retrieval of requested information into hierarchies, invisible to the client.
- Code-on-demand (optional): the ability to send executable code from the server to the client when requested, extending client functions.
Though the REST API has these criteria to conform to, it is still considered easier to use than a prescribed protocol like SOAP (Simple Object Access Protocol), which has specific requirements like XML messaging, and built-in security and transaction compliance that make it slower and heavier.
Why choose Red Hat?
Red Hat® Integration is an API-centric solution that provides application connectivity and data transformation, service composition and orchestration, real-time message streaming, change data capture, and API management all in one place to connect applications and data across a hybrid infrastructure. It’s combined with a cloud-native platform and toolchain to support modern app development.
Red Hat 3scale API Management is a component of Red Hat Integration, and helps you share, distribute, control, and monetize your APIs on an infrastructure platform built for performance, control, security, and growth. Place 3scale components on-premise, in the cloud, or both.
A comprehensive set of integration and messaging technologies.
An API management platform.