
The REST API should ensure that the same piece of data, such as the name or email address of a user, belongs to only one uniform resource identifier (URI). All API requests for the same resource should look the same, no matter where the request comes from. The only requirement is that they align to the following six REST design principles - also known as architectural constraints: But REST APIs can be developed using virtually any programming language and support a variety of data formats. Some APIs, such as SOAP or XML-RPC, impose a strict framework on developers. The application or service doing the accessing is called the client, and the application or service containing the resource is called the server.

REST design principlesĪt the most basic level, an API is a mechanism that enables an application or service to access a resource within another application or service. This flexibility is just one reason why REST APIs have emerged as a common method for connecting components and applications in a microservices architecture.

Roy Fielding in his doctoral dissertation, REST provides a relatively high level of flexibility and freedom for developers. įirst defined in 2000 by computer scientist Dr. For this reason, REST APIs are sometimes referred to RESTful APIs. A REST API is an API that conforms to the design principles of the REST, or representational state transfer architectural style. What is a REST API?Īn API, or application programming interface, is a set of rules that define how applications or devices can connect to and communicate with each other. REST APIs provide a flexible, lightweight way to integrate applications, and have emerged as the most common method for connecting components in microservices architectures.
