---
description: >-
  Esta página apresenta os principais tipos de APIs, destacando suas
  características e aplicações. Você verá como diferentes APIs atendem a
  necessidades específicas no desenvolvimento de software.
---

# 9.2 Tipos de APIs

## 🖐️Introdução

Agora que você já compreende o que é uma API e como ela funciona, é importante conhecer os diferentes tipos de APIs existentes. Cada tipo tem características específicas, sendo usadas em situações distintas, dependendo das necessidades do sistema e do nível de acesso desejado.&#x20;

Nesta seção, vamos explorar os principais tipos de APIs e entender suas aplicações práticas.

## ☝️🤓 Sobre os Tipos de API

{% tabs %}
{% tab title="🌐 API Web" %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FG94EDjYGzK97GguusxcH%2Fcss.png?alt=media&#x26;token=f045fdce-88e1-44ef-84a9-016dcf86709a" alt=""><figcaption></figcaption></figure>

Uma **API Web** é uma interface que permite a comunicação entre um servidor web e um cliente (como um navegador ou aplicação). Seu objetivo principal é possibilitar a troca de dados entre sistemas diferentes por meio da internet, utilizando o protocolo HTTP.

Todos os **serviços web** são APIs, mas nem todas as APIs são, necessariamente, serviços web. O termo "API Web" se popularizou com o avanço da internet, embora as APIs existam desde antes da World Wide Web.

Atualmente, um dos tipos mais comuns e utilizados de API Web segue um estilo arquitetural específico — que será abordado a seguir.&#x20;

#### ⭐ **Características:**

* Utilizadas em aplicações web, mobile e sistemas distribuídos.
* Podem ser públicas (ex: API do Google Maps) ou privadas (ex: APIs internas de uma empresa).
* Suportam diversos formatos de dados, como JSON e XML.

**Exemplo:** Uma aplicação de previsão do tempo acessando dados de uma API pública via HTTPS.
{% endtab %}

{% tab title="⚡API REST " %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FWDtRXAaXdmZ6rLrycF5e%2Fcss%20(1).png?alt=media&#x26;token=e9b4903f-c972-4ec3-9f1d-82f6b74f1c33" alt=""><figcaption></figcaption></figure>

Embora todos os serviços web sejam APIs, nem toda API é um serviço web. A **API REST** (Representational State Transfer) é um exemplo comum de API Web que segue um estilo arquitetural baseado em recursos.

Nessa arquitetura, os recursos são representados por URLs e as operações sobre eles são feitas por meio dos métodos HTTP padrão (GET, POST, PUT, DELETE). As APIs REST são amplamente usadas em aplicações modernas por serem simples, leves e escaláveis.

Além disso, elas normalmente utilizam o formato JSON para troca de dados e são **stateless**, ou seja, cada requisição é independente e contém todas as informações necessárias para ser processada, sem depender de estados anteriores no servidor.

Por essas razões, as APIs REST são uma escolha popular para criar sistemas flexíveis e eficientes na web atual.

⭐ **Peculiaridades:**

* Leve e simples de implementar.
* Normalmente usa **JSON** como formato de dados.
* Stateless: cada requisição carrega todas as informações necessárias (sem manter estado no servidor).
* URLs bem definidas e padronizadas.

**Exemplo:** `GET /users/45` retorna os dados do usuário com ID 45.
{% endtab %}

{% tab title="🧼 API SOAP" %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FYIpaM7Yjh9h4spl6tYdG%2Fcss%20(2).png?alt=media&#x26;token=4e107790-2630-41c6-9b0f-f2c83aa182cf" alt=""><figcaption></figcaption></figure>

SOAP é um protocolo de comunicação para APIs que usa XML para formatar suas mensagens. É mais rígido e estruturado que outras APIs web, com regras definidas para segurança, transações e confiabilidade. Por isso, é bastante usado em sistemas empresariais que exigem maior segurança e controle, como bancos e serviços governamentais.\
\
⭐ **Peculiaridades:**

* Utiliza **XML** obrigatoriamente.
* Segue um contrato (WSDL – Web Services Description Language).
* Suporta transações, segurança avançada (WS-Security), e mensagens complexas.
* Mais usado em ambientes corporativos que exigem padronização e controle estrito.

**Exemplo:** Integrações bancárias ou sistemas legados governamentais.
{% endtab %}

{% tab title="💻 APIs de Sistema Operacionaltled" %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FcvNbWGQgltje9JIvK3p7%2Fcss%20(3).png?alt=media&#x26;token=162c8873-cbb6-4ad0-88d5-70c480248bb1" alt=""><figcaption></figcaption></figure>

Essas APIs permitem que aplicativos interajam diretamente com o sistema operacional. Por exemplo, APIs do Windows ou do Linux fornecem funções para acessar arquivos, gerenciar processos e utilizar recursos do sistema, facilitando o desenvolvimento de softwares que dependem do ambiente do sistema operacional.

⭐ **Peculiaridades:**

* Acesso a funções do sistema como gerenciamento de arquivos, memória, processos, entrada/saída, etc.
* Geralmente são específicas para cada sistema (ex: API Win32 para Windows).
* São fundamentais para softwares de baixo nível ou que interagem diretamente com o SO.

**Exemplo:** Um programa usando a API do Windows para abrir e manipular arquivos do sistema.
{% endtab %}

{% tab title="📚 API de biblioteca" %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FzWo9hj10z1Q3aC2BoZF0%2Fcss%20(4).png?alt=media&#x26;token=56dda48f-b3fc-4b6c-b095-98f7011215fa" alt=""><figcaption></figcaption></figure>

São conjuntos de funções e rotinas oferecidas por bibliotecas ou frameworks que os desenvolvedores podem usar para adicionar funcionalidades específicas aos seus aplicativos. Por exemplo, uma biblioteca de manipulação de imagens pode fornecer APIs para carregar, editar e salvar fotos.

⭐ **Peculiaridades:**

* Envolvem bibliotecas gráficas, matemáticas, de rede, etc.
* Simplificam o uso de funcionalidades complexas com chamadas simples.
* Não dependem de rede: estão integradas ao projeto.

**Exemplo:** API do NumPy em Python para cálculos matemáticos, ou API do React para criação de interfaces.
{% endtab %}

{% tab title="🛠️ APIs de HardWare" %}
<figure><img src="https://3296352579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FM6UO6l8WmCnDy7MzGKD1%2Fuploads%2FM280FKmBfoElMvfYyKhE%2Fcss%20(5).png?alt=media&#x26;token=d4e4f154-0863-4097-9308-8f1a9eda0b9c" alt=""><figcaption></figcaption></figure>

Essas APIs permitem que o software se comunique diretamente com dispositivos de hardware, como impressoras, câmeras, sensores ou drivers de dispositivos. Elas facilitam o controle e a utilização do hardware pelo software, garantindo que as operações funcionem corretamente.

\
⭐ **Peculiaridades:**

* Usam drivers e interfaces específicas fornecidas pelo fabricante.
* Permitem leitura e controle direto de dispositivos físicos.
* Muito utilizadas em aplicações embarcadas, jogos, sistemas de automação, etc.

**Exemplo:** Uma aplicação de webcam que acessa o vídeo em tempo real via API do driver da câmera.
{% endtab %}
{% endtabs %}

## 🤔O que é HTTP/ HTPPS?

**HTTP** significa **Hypertext Transfer Protocol** (Protocolo de Transferência de Hipertexto).\
É o protocolo usado para a **comunicação entre navegadores e servidores web**.\
Quando você acessa um site (como `http://exemplo.com`), o navegador envia requisições HTTP ao servidor, que responde com páginas, imagens, vídeos, etc.

**HTTPS** é a versão segura do HTTP. O **"S"** significa **Secure**.\
Ele utiliza **SSL/TLS (Secure Sockets Layer / Transport Layer Security)** para **criptografar os dados trocados** entre o navegador e o servidor.

Isso protege as informações contra espionagem, alterações e roubo de dados — essencial para sites com login, senhas, cartões de crédito, etc.

<details>

<summary>🧩 <mark style="color:blue;"><strong>Uma requisição HTTP é composta por cinco partes principais:</strong></mark></summary>

⭐ **Métodos HTTP:**

* <mark style="color:green;">**GET:**</mark> recuperar dados de um servidor.
* <mark style="color:yellow;">**POST:**</mark> enviar dados ao servidor para criar ou atualizar recursos.
* <mark style="color:blue;">**PUT:**</mark> atualizar um recurso existente no servidor.
* <mark style="color:red;">**DELETE:**</mark> deletar um recurso do servidor.

***

#### 🛬  **Endpoints (paths):**

URLs específicas que representam recursos da API. Cada endpoint corresponde a um recurso ou coleção de recursos. Exemplo: `/users/123` representa o usuário com ID 123.

***

#### ⚡ **Versão do protocolo:**

&#x20;Indica a versão do protocolo HTTP usada na comunicação, como HTTP/1.1 ou HTTP/2. Isso afeta a forma como dados são transferidos e gerenciados.

***

#### 👧 **Headers:**

&#x20;Informações adicionais enviadas com a requisição, que podem incluir:

* Autenticação (tokens, chaves de API);
* Tipo de conteúdo esperado ou enviado (`Content-Type`);
* Configurações de cache;
* Idioma (`Accept-Language`);

***

#### 🕺 **Corpo da requisição:**&#x20;

Dados enviados com a requisição, usados principalmente em métodos POST e PUT para enviar informações ao servidor, como formulários, JSON ou arquivos.

</details>

## 🤓Exemplo de API REST

### 👉 Endpoint:  https://api.exemplo.com/usuarios

* <mark style="color:green;">GET</mark> https://api.exemplo.com/usuarios — Retorna lista de usuários.
* <mark style="color:yellow;">POST</mark> https://api.exemplo.com/usuarios — Cria um novo usuário.
* <mark style="color:green;">GET</mark> https://api.exemplo.com/usuarios/{id} — Retorna dados de um usuário específico.
* <mark style="color:blue;">PUT</mark> https://api.exemplo.com/usuarios/{id} — Atualiza dados de um usuário específico.
* <mark style="color:red;">DELETE</mark> https://api.exemplo.com/usuarios/{id} — Deleta um usuário específico.

\


***

