A Representational State Transfer é um estilo de arquitetura criado por Roy Fielding em 2000 para projetar aplicações acopladas sobre HTTP e é frequentemente utilizada no desenvolvimento de APIs. Para que um serviço seja considerado RESTful, não deve violar estas restrições.
Os programadores preferem utilizar REST como alternativa ao SOAP porque não envolve escrever muito código para realizar tarefas simples, ao contrário do SOAP, que exige que se crie a estrutura XML necessária todas as vezes. O serviço web RESTful utiliza uma abordagem diferente. Ele trata a informação como um recurso representado por um URL único. Assim, se quiser solicitar um determinado recurso, terá de fornecer o seu URL utilizando métodos HTTP como GET, POST, PUT, HEAD, DELETE, PATCH e OPTIONS. Pode encontrar mais informações sobre estes métodos aqui! Por vezes, poderá ser necessário enviar dados adicionais juntamente com o URL para obter o que precisa, como uma chave de acesso.
Ao contrário do SOAP, o REST não se limita a utilizar XML para fornecer a resposta. Pode obter a informação em diferentes formatos, como JSON, XML, CSV, texto simples e HTML, que são analisados mais facilmente com base na linguagem que está a utilizar para a sua aplicação.
Aqui está uma comparação entre JSON e XML:
É frequente ouvir os programadores a falar sobre as funcionalidades de diferentes APIs, mas há outro aspeto importante, menos discutido: a documentação. Sem o conhecimento que ela contém, uma API pode muito bem ser um conjunto de hieróglifos.