Um pouquinho sobre API Rest

Não conseguia entender muito bem o que as APIs faziam e, por mais que eu tentasse, algo me escapava. Eu já tinha visto milhares de vezes a analogia de que a API funciona como um garçon, levando os pedidos dos clientes e retornando com os pratos. Mas, algo não encaixava. A pecinha que faltava para o meu entendimento é essa gotinha que resolvi compartilhar aqui e, quem sabe, conseguir ajudar alguém a fechar esse quebra-cabeças de uma vez por todas.
Os Web Services possibilitam que aplicações se comuniquem, mesmo que tenham sido criadas em linguagens diferentes e rodem em ambientes distintos. Ou seja, são Application Programming Interfaces (APIs) que comunicam por meio de redes usando o protocolo HTTP. Isso permite que uma aplicação disponibilize suas funcionalidades para outras aplicações. De forma geral, uma requisição http é realizada (utilizando uns dos métodos http) ao servidor e retorna um código de operação com o status da requisição e a mensagem (geralmente em JSON).
Mas, o que é REST?
É um design de arquitetura que define a implementação do Web Service, pode trabalhar com diversos formatos, mas os mais conhecidos são o XML e o JSON. Utiliza-se dos métodos HTTP para definir a operação a ser realizada, por exemplo: utiliza o método GET para obter informações, POST para criar, DELETE para excluir e PUT para atualizar os recursos.
Ou seja, para ser REST tem que seguir essa arquitetura. A documentação da API do Twitter é bem amigável e pode ser um bom exemplo para ilustrar como são disponibilizadas.
E como funciona?
Perceba que a url utilizada geralmente é a mesma, mudando apenas o método:
- para acessar informações, o método utilizado é o GET e pode ser requisitado até mesmo pelo browser.
- para criar (POST), editar (PUT) ou deletar (DELETE) são utilizados programas como o Postman ou Insomnia.

Na imagem, podemos ver que o método selecionado foi o GET, que está fazendo uma requisição ao https://httpbin.org/get. Sabemos que a requisição foi bem sucedida porque aparece o código de status 200. O JSON que aparece é justamente a resposta à requisição.
E no código?
São utilizadas bibliotecas que realizam as requisições. Então, a forma de manipular a API varia de acordo com a biblioteca escolhida. Achei esse vídeo bem legal sobre o assunto.