DEV Community

pcgustavo7
pcgustavo7

Posted on Edited on

API & API REST: como sistemas conversam entre si

API e API REST: como sistemas conversam entre si

O que é uma API?

Uma API (Interface de Programação de Aplicações) é uma ponte de comunicação que permite que diferentes sistemas de software conversem entre si.

Ela define regras sobre como um sistema pode solicitar informações ou realizar ações em outro sistema.

Podemos imaginar uma API como o garçom de um restaurante.

Você faz um pedido para o garçom, ele leva esse pedido até a cozinha e depois traz a resposta.

       👤 Cliente
          │
          │ "Quero um hambúrguer"
          ▼
       🧑‍🍳 API
       (Garçom)
          │
          ▼
       🍳 Cozinha
       (Sistema)
          │
          ▼
       🍔 Resposta
          │
          ▼
       👤 Cliente
Enter fullscreen mode Exit fullscreen mode

Você não precisa saber como a cozinha prepara o hambúrguer. Você apenas precisa saber como fazer o pedido.

Com uma API acontece a mesma coisa:

🌐 Sistema A
     │
     │ Requisição
     ▼
🔌 API
     │
     ▼
💻 Sistema B
     │
     │ Resposta
     ▼
🌐 Sistema A
Enter fullscreen mode Exit fullscreen mode

A API funciona como uma interface entre os dois sistemas.


Um exemplo do dia a dia

Imagine um aplicativo de previsão do tempo.

O aplicativo precisa descobrir a temperatura atual, mas ele não possui todas essas informações sozinho.

Então ele pode fazer uma requisição para uma API:

📱 Aplicativo
     │
     │ "Qual a temperatura de hoje?"
     ▼
🌐 API de clima
     │
     ▼
🌡️ Dados do clima
     │
     ▼
📱 Aplicativo
     │
     ▼
"28°C ☀️"
Enter fullscreen mode Exit fullscreen mode

O aplicativo não precisa saber como a API consegue essas informações. Ele apenas segue as regras definidas por ela.


E o que é uma API REST?

API REST é uma forma muito comum de construir APIs utilizando as regras e recursos da própria internet, principalmente o protocolo HTTP.

Em uma API REST, os dados são tratados como recursos.

Por exemplo:

/clientes
/produtos
/pedidos
/usuarios
Enter fullscreen mode Exit fullscreen mode

Cada endereço representa um tipo de recurso que a API disponibiliza.


Os principais métodos HTTP

Para interagir com esses recursos, uma API REST utiliza principalmente quatro métodos:

GET       → 📖 Consultar
POST      → ➕ Criar
PUT       → ✏️ Atualizar
DELETE    → 🗑️ Apagar
Enter fullscreen mode Exit fullscreen mode

Por exemplo, imagine uma API de clientes:

GET /clientes
Enter fullscreen mode Exit fullscreen mode

Significa:

"Quero consultar os clientes."

POST /clientes
Enter fullscreen mode Exit fullscreen mode

Significa:

"Quero cadastrar um novo cliente."

PUT /clientes/10
Enter fullscreen mode Exit fullscreen mode

Significa:

"Quero atualizar o cliente de número 10."

DELETE /clientes/10
Enter fullscreen mode Exit fullscreen mode

Significa:

"Quero excluir o cliente de número 10."

Podemos visualizar assim:

                 API REST
                    │
       ┌────────────┼────────────┐
       ▼            ▼            ▼
    👥 Clientes   📦 Produtos   🛒 Pedidos
       │
       ├── GET     → Consultar
       ├── POST    → Criar
       ├── PUT     → Atualizar
       └── DELETE  → Apagar
Enter fullscreen mode Exit fullscreen mode

O que significa "RESTful"?

Uma das características importantes de uma API REST é o conceito de stateless, ou seja, sem estado.

Isso significa que cada requisição deve trazer as informações necessárias para que o servidor consiga processá-la.

Por exemplo:

👤 Usuário
   │
   │ Requisição + informações necessárias
   ▼
🌐 API
   │
   ▼
✅ Processa
Enter fullscreen mode Exit fullscreen mode

A API não deve depender de uma informação que ficou "guardada" de uma requisição anterior para entender a próxima.


API x API REST

É importante entender que API e API REST não são exatamente a mesma coisa.

API é um conceito mais amplo: é uma forma de permitir que sistemas se comuniquem.

API REST é uma maneira específica de construir uma API, utilizando princípios do REST e normalmente o HTTP.

Podemos pensar assim:

🔌 API
   │
   ├── API REST
   ├── API SOAP
   └── Outras formas de API
Enter fullscreen mode Exit fullscreen mode

Resumindo

API é uma ponte que permite que diferentes sistemas se comuniquem seguindo determinadas regras.

API REST é uma forma de construir essa comunicação utilizando os princípios do REST e os métodos HTTP, como GET, POST, PUT e DELETE.

Exemplo do dia a dia 🍽️

No restaurante:

👤 Você
 │
 │ Pedido
 ▼
🧑‍🍳 Garçom
 │
 │ Pedido
 ▼
🍳 Cozinha
 │
 │ Resposta
 ▼
🧑‍🍳 Garçom
 │
 ▼
🍔 Você
Enter fullscreen mode Exit fullscreen mode

No software:

💻 Sistema A
 │
 │ Requisição
 ▼
🔌 API REST
 │
 │ Requisição
 ▼
💻 Sistema B
 │
 │ Resposta
 ▼
🔌 API REST
 │
 ▼
💻 Sistema A
Enter fullscreen mode Exit fullscreen mode

O garçom representa a API: ele faz a comunicação entre você e a cozinha sem que você precise conhecer o funcionamento interno dela.

Para lembrar

API = ponte de comunicação entre sistemas.

REST = conjunto de princípios para construir APIs, geralmente utilizando HTTP.

GET = ler | POST = criar | PUT = atualizar | DELETE = apagar

Top comments (0)