0% acharam este documento útil (0 voto)
5 visualizações12 páginas

Entendendo APIs e Requisições HTTP

Uma API (Interface de Programação de Aplicações) permite a comunicação entre diferentes sistemas de software, utilizando requisições HTTP para troca de dados. As requisições podem incluir métodos como GET, POST, PUT e DELETE, e são estruturadas com uma linha de requisição, cabeçalhos e corpo. Endpoints são os endereços específicos onde ações podem ser realizadas, e parâmetros podem ser utilizados para filtrar ou especificar informações na requisição.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações12 páginas

Entendendo APIs e Requisições HTTP

Uma API (Interface de Programação de Aplicações) permite a comunicação entre diferentes sistemas de software, utilizando requisições HTTP para troca de dados. As requisições podem incluir métodos como GET, POST, PUT e DELETE, e são estruturadas com uma linha de requisição, cabeçalhos e corpo. Endpoints são os endereços específicos onde ações podem ser realizadas, e parâmetros podem ser utilizados para filtrar ou especificar informações na requisição.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

O que é uma API

API (Application Programming Interface) é um conjunto de regras e protocolos que permite


a comunicação e troca de dados entre diferentes sistemas de softwares, como aplicativos,
servidores ou serviços na nuvem. Atua como ponte invisível ajudando na integração de
sistemas, sem que tenhamos que conhecer detalhes internos uns dos outros.

Como funciona

A API atua como um “garçom” entre o cliente e o servidor.

O cliente (geralmente um computador ou aplicativo) envia uma requisição à API.

A API verifica se as regras estão sendo obedecidas e, em seguida, o servidor busca ou


manipula as informações solicitadas.

Essas requisições utilizam o protocolo HTTP ou HTTPS, que é o responsável por


“transportar” os dados entre cliente e servidor.

Os principais tipos de requisição são:

● GET: obter (pegar) dados;

● POST: adicionar novos dados;

● PUT: atualizar dados existentes;

● DELETE: apagar dados.

Após processar a requisição, o servidor envia uma resposta, geralmente no formato JSON,
que o cliente consegue interpretar e utilizar.

O que é uma requisição HTTP

HTTP - HyperText Transfer Protocol: protocolo que define como as informações são
trocadas na internet. É o meio de transporte, protocolo que leva o pedido e trás a resposta.

Protocolo significa um conjunto de regras que define como enviar um pedido (requisição) e
como receber uma resposta.

Uma requisição HTTP é um pedido que um cliente faz a um servidor, para acessar ou enviar
algum tipo de informação na web.

Estrutura de uma requisição HTTP


Três principais partes:

1. Linha de requisição
a. Método HTTP (Get, Post, etc.)
b. URL (endereço do recurso
c. Versão do protocolo

Exemplo: GET /produtos HTTP/1.1

2. Cabeçalhos (headers)
a. São informações extras sobre o pedido;
b. Servem para dizer coisas como: que tipo de conteúdo está sendo enviado
(JSON, texto, imagem, etc.), quem está fazendo a requisição (token de
autenticação), o idioma, cachê, coockoes, etc.

Exemplo: Host: [Link]

Content-Type: application/json

Authorization: Bearer 123abc

3. Corpo (body
a. Nem toda requisição tem corpo, mas quando tem, é aqui que vem os dados

Exemplo num post para criar usuário: JSON

"nome": "Letícia",

"email": "leticia@[Link]"

4. Métodos HTTP - Representam CRUD


a. GET - buscar dados. Ex: GET/usuarios
b. POST - criar novo recurso. Ex: POST/usuarios
c. PUT - atualizar recurso inteiro. Ex: PUT/usuarios/1
d. PATCH - atualizar parte de um recurso. Ex: PATCH/usuarios/1
e. DELETE - apagar recurso. Ex: DELETE/usuarios/1

5. Estrutura da resposta HTTP


a. Toda requisição recebe uma resposta com: código do status, cabeçalhos,
corpo (com dados).
Exemplo: HTTP/1.1 200 OK

Content-Type: application/json

"id": 1,

"nome": "Letícia"

Exemplo completo (Requisição + Resposta)

Requisição Cliente -> Servidor

POST /api/usuarios HTTP/1.1

Host: [Link]

Content-Type: application/json

"nome": "Letícia",

"email": "leticia@[Link]"

Resposta Servidor -> Cliente

HTTP/1.1 201 Created

Content-Type: application/json

"id": 1,

"nome": "Letícia",

"email": "leticia@[Link]"
}

HTTP - os dados vão “abertos

HTTPS - os dados são criptografados com SSL/TLS

Como uma API usa isso ?

Em APIs, as requisições HTTP são a base da comunicação entre sistemas.

Exemplo no flutter com pacote http:

import 'package:http/[Link]' as http;

void enviarDados() async {

var url = [Link]('[Link]

var resposta = await [Link](

url,

headers: {'Content-Type': 'application/json'},

body: '{"nome": "Letícia"}',

);

print([Link]); // Ex: 201

print([Link]); // Dados retornados

Conceito O que é
HTTP Protocolo que define como cliente e
servidor trocam dados

Requisição Pedido do cliente (com método,


cabeçalhos e corpo)

Resposta Retorno do servidor (com status e dados)

Método Tipo de ação (GET, POST, PUT,


DELETE…)

Status Code Mostra se deu certo ou erro

HTTPS Versão segura do HTTP

O que é um endpoint

É o endereço final (rota) de uma API, onde uma ação específica pode ser feita. É um “ponto
de entrada” (literalmente end point) de comunicação entre o cliente e servidor.

Endpoint = caminho (URL) + Método HTTP, serve para criar, atualizar ou apagar dados em
um servidor.

Exemplo:

API: [Link]

Esse é o caminho principal da API, mas ele sozinho não faz nada, precisamos de endpoints
para dizer o que quer acessar. Exemplo:

GET [Link] → lista todos os usuários

POST [Link] → cria um novo usuário


GET [Link] → pega o usuário com ID 1

PUT [Link] → atualiza o usuário com ID 1

DELETE [Link] → apaga o usuário com ID 1

Cada um desses caminhos (/users, /users/1, etc.) é um endpoint diferente.

Estrutura de um endpoint: é formado por partes

● Https:// - Protocolo (segurança e cominicacao)


● [Link] - domínio do servidor (onde a API está hospedada)
● /users - Recurso principal (entidade ou coleção)
● /1 - ID do recurso específico (ID do usuário)

Em APIs RESTful, os endpoints representam recursos, e os métodos HTTP (GET, POST,


PUT, DELETE) indicam o que fazer com esses recursos.

Então:

● O endpoint diz “onde” agir

● O método HTTP diz “o que” fazer

O que são parâmetros em uma requisição

Parâmetros são valores extras enviados na URL (ou corpo da requisição) para especificar,
filtrar ou personalizar a resposta do servidor. Eles servem para dar mais contexto à
requisição, tipo “quero o usuário 5” ou “quero só os usuários ativos”.

Exemplo: [Link]

Aqui temos dois tipos de parâmetros diferentes:

1. /5 → Path Parameter

2. ?active=true → Query Parameter

PATH PARAMETERS (parâmetro de caminho): são usados dentro do caminho (rota) da


URL, para identificar um recurso específico. Fazem parte do endpoint. Exemplo:
GET [Link]

● /users → o recurso (coleção de usuários)

● /5 → o parâmetro de caminho, identificando o usuário com ID 5

QUERY PARAMETERS (parâmetro de consulta): são usados depois do ponto de


interrogação na URL. Servem para filtrar, ordenar, limitar ou buscar informações. Não fazem
parte da rota, mas modificam o resultado. Exemplo:

GET [Link]

Isso pede todos usuários ativos.

Outro exemplo:

GET /users?age=25&gender=female&sort=name

● age=25 → filtra por idade

● gender=female → filtra por gênero

● sort=name → ordena por nome

Estrutura do QUERY PARAMETERS

?chave=valor&chave=valor

● Começa com ?

● Cada parâmetro é separado por &

● Cada item tem chave=valor

Body (corpo da requisição)

É a parte da requisição HTTP que carrega dados que o cliente quer enviar ao servidor. É
como o conteúdo da mensagem, o que realmente queremos mandar.

● O endpoint diz para onde vai o pedido;


● O método (GET, POST, etc.) diz o que fazer;
● O body diz com quais dados fazer isso

Exemplo, uma API que cria novos usuários:


O endpoint: POST [Link]

O body pode conter os dados do novo usuário:

JSON {

"nome": "Letícia",

"email": "leticia@[Link]",

"senha": "123456"

Esse bloco JSON é o corpo da requisição. Ele é enviado dentro do pedido para o servidor
criar um novo usuário com essas informações.

GET e DELETE normalmente não enviam body, pois não precisam mandar dados, só
pedem ou removem algo.

Tipos de body (corpo da requisição):

1. JSON (application/json)

● Formato mais comum em APIs modernas

● Estrutura de chave-valor ({"nome": "Letícia", "idade": 25})

● Usado em POST, PUT, PATCH

2. Formulário (x-www-form-urlencoded)

● Semelhante a dados de formulário HTML

● Estrutura: nome=Letícia&idade=25

● Simples, mas limitado para arquivos

3. Multipart/form-data

● Para enviar arquivos + dados


● Cada parte é separada, permitindo imagens, PDFs etc.

4. Texto puro (text/plain)

● Envia dados simples, brutos, sem formatação

● Exemplo: "Olá servidor!"

Headers (Cabeçalho da requisição)

São informações adicionais que enviamos junto com a requisição (ou resposta) para dar
contexto sobre a requisição ou instruções ao servidor. Eles não fazem parte do body, mas
dizem ao servidor como interpretar os dados, quem está pedindo e qual formato específico.

Exemplos comuns de headers:

● Content-Type → tipo do body (ex.: application/json)

● Authorization → credenciais (ex.: Bearer <token>)

● Accept → formato de resposta esperado (ex.: application/json)

● User-Agent → identifica o cliente (ex.: Mozilla/5.0)

● Cache-Control → instruções de cache (ex.: no-cache)

● Custom Header → informação adicional (ex.: X-Client-Version: 1.2.3)

Formato: chave: valor

O que é JSON, como ler e montar

É um formato de dados leve usado para trocar informações entre cliente e servidor. É texto
fácil de ler e escrever e segue a estrutura de objetos e arrays. Exemplo:

"nome": "Letícia",

"idade": 25,
"ativo": true

Estrutura JSON:

1. Objetos: representados por {}, contém pares chave:valor.


a. {

"chave": "valor",

"outraChave": 123

2. Arrays: representados por [], contém listas de valores ou objetos. Exemplo:


a. [

"maçã",

"banana",

"laranja"

Tipos de valor:

● String → texto, entre aspas "Letícia"

● Number → números 25

● Boolean → true / false

● Null → ausência de valor null

● Array → lista [1, 2, 3]

● Object → objeto { "id": 1, "nome": "Letícia" }

Como ler JSON:

1. Procure { } -> é um objeto


2. Procure [ ] -> é um array
3. Separe os pares chave:valor. Exemplo:
a. {
"nome": "Letícia",

"hobbies": ["academia", "programar"]

Objeto principal: { ... }

Chave "nome" → valor "Letícia"

Chave "hobbies" → valor é um array ["academia", "programar"]

Como montar JSON:

1. Comece com {} para objeto ou [] para array;


2. Insira pares chave:valor separados por vírgula;
3. Use aspas duplas para strings e chaves;
4. Não deixar vírgula no final, após o último item.

Exemplo:

"nome": "Letícia",

"email": "leticia@[Link]",

"idade": 25,

"ativo": true,

"hobbies": ["academia", "programar"]

JSON é case-sensitive → "Nome" ≠ "nome". Sempre use aspas duplas para chaves e
strings

Status CODE HTTP

É o código numérico enviado pelo servidor para informar o resultado da requisição. Diz se
deu certo ou se houve erros e precisa de mais ação. Sempre vem na resposta API.

● 200 → Requisição bem-sucedida


● 201 → Recurso criado com sucesso

● 400 → Requisição inválida (erro do cliente)

● 401 → Não autorizado (falta autenticação)

● 404 → Recurso não encontrado

● 500 → Erro interno do servidor

Como lembrar:

● 2xx → Tudo certo

● 4xx → Problema do cliente

● 5xx → Problema do servidor

Você também pode gostar