API REST e RESTful
É uma aplicação cliente/servidor que envia e recebe dados por protocolo HTTP. Utiliza XML e JSON como padrão de comunicação e também pode ser implementada na linguagem desejada.
O objetivo de desenvolver uma API é para permitir a interoperabilidade entre aplicações. Ou seja, que os dados fluam entre diversos sistemas com o mínimo de intervenção humana possível. A mesma API pode, portanto, ser utilizada em um disposito “desktop” e mobile simultaneamente.
Uma API só é RESTful quando se usa na sua implementação o conceito arquiterual REST. Em suma, REST é algo abstrato enquanto RESTful é algo mais concreto, como a implementação deste modelo em alguma API.
Arquitetura REST
Uma arquitetura REST é em resumo um conjunto de boas práticas. Existem 6 constraints obrigatórias para uma API ser considerada REST.
Ela deve ser cliente/servidor, separando responsabilidades;
Stateless - Não guardar estado no servidor;
A aplicação deve ter a capacidade de realizar cache para reduzir trafégo de dados entre cliente/servidor;
Deve ter uma interface uniforme, contendo recursos bem definidos, apresentar hipermídias e utilizar corretamente métodos HTTP e códigos de retorno;
O sistema deve ser construído em camadas, tendo a possibilidade de escalar a aplicação em multiplos seridores;
a aplicação deve ter a capacidade de evoluir sem a quebra da mesma, ou seja, código sob demanda.
Atualizado