O que é uma API RESTful?
Com todo o hype em torno dos serviços da Web RESTful, você poderia pensar que de repente surgiu um novo conceito que entrou em cena há apenas um ou dois anos. A verdade é que os conceitos subjacentes às APIs RESTful são tão antigos quanto a própria rede e são realmente mais bem compreendidos desse ponto de vista.
Antes de nos aprofundarmos no que são APIs RESTful, vamos explicar por que você deve se importar. Centenas de métodos surgiram ao longo dos anos para conectar computadores entre si por meio de uma rede que fala o mesmo idioma. A evolução desses métodos, ou "protocolos", levou à aceitação de uma enorme quantidade de padrões acordados, cada um abordando a comunicação do computador de uma maneira específica. No topo dessa lista estão as camadas de aplicativo e apresentação, onde a lógica de negócios e os dados resultantes dela são trocados.
O REST fica neste monte de uma maneira que torna mais fácil para os humanos entenderem o que está sendo trocado, enquanto permite que os computadores conversem entre si de forma eficiente. Você também pode ter ouvido falar de algumas das outras tecnologias que podem estar aqui, como SOAP (que requer uma boa quantidade de dados e poder de computação e não é realmente apropriado para os recursos restritos de aplicativos móveis), JMS (que é específico para Aplicativos Java) e XML-RPC (que tem muitos dos mesmos problemas do SOAP sem nenhum dos benefícios da padronização).

O REST permite que uma quantidade mínima de dados seja passada usando os mesmos mecanismos bem estabelecidos que definem a web sem muitos dos obstáculos introduzidos por protocolos mais pesados. Isso permite que os programadores criem programas que acessem e atuem sobre os dados expostos por meio de APIs de forma mais rápida, mesmo em ambientes com velocidades de rede não confiáveis e capacidade de computação limitada.
O REST funciona quase exatamente como um site em um navegador. Um recurso é exposto a um programa por meio de uma URL. O programa pode acessar essa URL e receber dados sobre o recurso, não muito diferente de quando você digita uma URL em seu navegador e obtém uma página da web de volta. APIs RESTful bem projetadas incluem links adicionais que o programa pode seguir para solicitar informações relacionadas - semelhante a como quando você clica em um link para visitar uma nova página - ou para enviar dados para atualizar o recurso fornecido - semelhante a como quando você preenche um formulário eletrônico para criar uma nova conta para um site.
A desvantagem de toda essa flexibilidade é a falta de padrões rígidos. O REST realmente descreve o método pelo qual os dados são transferidos, mas os implementadores foram deixados por conta própria para descobrir como esses dados deveriam ser. Isso está mudando rapidamente, especialmente à medida que o número de dispositivos móveis acessando dados pela rede aumenta, mas levará um tempo antes que esses formatos se unam em algo semelhante a verdadeiros padrões.