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

Introdução à API REST

API REST é um estilo de arquitetura para serviços web baseado em recursos e operações HTTP. Os princípios fundamentais incluem recursos identificados por URLs, métodos HTTP para operações, e a natureza stateless das requisições. APIs REST são essenciais para o desenvolvimento web moderno, promovendo comunicação padronizada e eficiente entre sistemas.

Enviado por

xacan52466
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)
12 visualizações5 páginas

Introdução à API REST

API REST é um estilo de arquitetura para serviços web baseado em recursos e operações HTTP. Os princípios fundamentais incluem recursos identificados por URLs, métodos HTTP para operações, e a natureza stateless das requisições. APIs REST são essenciais para o desenvolvimento web moderno, promovendo comunicação padronizada e eficiente entre sistemas.

Enviado por

xacan52466
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

API REST

Resumo Simplificado

O que é uma API REST?


API REST (Representational State Transfer) é um estilo de arquitetura para sistemas distribuídos que
define regras para criar serviços web. É baseado em recursos, estados e operações HTTP padrão.

Conceitos Fundamentais

1. Recursos

Os recursos são entidades ou objetos de dados identificados por URLs específicas. Por exemplo:

/usuarios (coleção de usuários)

/usuarios/123 (usuário específico com ID 123)

2. Métodos HTTP

REST utiliza os métodos HTTP para definir operações sobre os recursos:

Método Função Exemplo

GET Obter dados GET /produtos - Lista todos os produtos


POST Criar novo recurso POST /produtos - Cria um novo produto
PUT Atualizar um recurso existente PUT /produtos/42 - Atualiza o produto 42
PATCH Atualizar parcialmente PATCH /produtos/42 - Atualiza só alguns campos
DELETE Remover um recurso DELETE /produtos/42 - Remove o produto 42

3. Representações

Os recursos podem ter diferentes representações, normalmente JSON ou XML:

json

{
"id": 123,
"nome": "João Silva",
"email": "joao@[Link]"
}

4. Stateless (Sem Estado)

Cada requisição ao servidor deve conter todas as informações necessárias para ser entendida. O
servidor não guarda estado entre requisições.
5. Códigos de Status HTTP

Informam sobre o resultado da operação:

2xx: Sucesso
200: OK
201: Created
204: No Content

4xx: Erro do cliente


400: Bad Request

401: Unauthorized
404: Not Found

5xx: Erro do servidor


500: Internal Server Error

Exemplo Prático

Requisição:

GET /api/produtos/123 HTTP/1.1


Host: [Link]
Accept: application/json

Resposta:

HTTP/1.1 200 OK
Content-Type: application/json

{
"id": 123,
"nome": "Smartphone XYZ",
"preco": 1299.99,
"disponivel": true
}

Princípios REST
1. Interface Uniforme: Mantém a arquitetura simples e separada

2. Cliente-Servidor: Separa as responsabilidades


3. Sem Estado: Cada requisição é independente

4. Cacheable: As respostas informam se podem ser armazenadas em cache


5. Sistema em Camadas: O cliente não sabe se está conectado ao servidor final
6. Código sob Demanda (opcional): O servidor pode enviar código executável

Benefícios
Simplicidade: Usa padrões web existentes
Escalabilidade: Sem estado facilita distribuição

Independência: Separação cliente-servidor


Interoperabilidade: Qualquer cliente que entenda HTTP pode se comunicar
Visibilidade: Mais fácil de monitorar e debugar

API REST vs. RESTful


Uma API é considerada RESTful quando segue rigorosamente os princípios REST. Muitas APIs se
descrevem como "REST" mesmo não seguindo todos os princípios.

Implementação em [Link]/Express
Exemplo simples:
javascript

const express = require('express');


const app = express();
[Link]([Link]());

const produtos = [
{ id: 1, nome: 'Produto A', preco: 99.90 }
];

// Listar todos os produtos


[Link]('/api/produtos', (req, res) => {
[Link](produtos);
});

// Obter produto específico


[Link]('/api/produtos/:id', (req, res) => {
const produto = [Link](p => [Link] === parseInt([Link]));
if (!produto) return [Link](404).json({ erro: 'Produto não encontrado' });
[Link](produto);
});

// Criar novo produto


[Link]('/api/produtos', (req, res) => {
const novoProduto = {
id: [Link] + 1,
nome: [Link],
preco: [Link]
};
[Link](novoProduto);
[Link](201).json(novoProduto);
});

[Link](3000, () => [Link]('Servidor rodando na porta 3000'));

Boas Práticas
1. Utilizar Substantivos (não verbos) nas URLs:
✅ GET /produtos
❌ GET /getProdutos

2. Versionar sua API:


[Link]/v1/recursos

3. Usar Códigos de Status HTTP corretamente


4. Implementar Paginação para grandes conjuntos de dados:
GET /produtos?pagina=2&limite=10

5. Incluir tratamento de erros consistente

6. Usar HATEOAS (Hypermedia as the Engine of Application State):


json

{
"id": 1,
"nome": "Produto A",
"links": [
{"rel": "self", "href": "/produtos/1"},
{"rel": "categorias", "href": "/produtos/1/categorias"}
]
}

Conclusão
APIs REST são fundamentais para o desenvolvimento web moderno, permitindo a comunicação entre
sistemas de forma padronizada e eficiente. Compreender seus princípios é essencial para qualquer
desenvolvedor que trabalhe com aplicações web.

Você também pode gostar