Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

APIs Restful com C# e POO
Arquitetura Moderna, Boas Práticas e Integração
Especialização em Engenharia de Software
Uma API Application Programming Interface) atua 
como um contrato digital, permitindo que sistemas 
distintos se comuniquem sem conhecer detalhes internos 
um do outro.
Ponte Digital: Conecta o Frontend Cliente) ao 
Backend Servidor).
Abstração: Oculta a complexidade do banco de 
dados e regras de negócio.
Padrão Web: Em C#, utilizamos o ASP.NET Core para 
criar APIs robustas e escaláveis.
O Conceito de API
Encapsulamento
Assim como uma classe protege seus atributos 
privados, a API protege o núcleo do sistema. O 
mundo externo só acessa o que é exposto 
através dos Endpoints (métodos públicos).
Interface e Contrato
A API define o que pode ser feito, mas não 
como. Se você mudar a lógica interna em C# (o 
"como"), o contrato com o cliente Front-end) 
permanece intacto.
A API sob a Ótica da POO
Arquitetura 
Cliente-Servidor
A web funciona baseada em trocas de 
mensagens. O ciclo de vida de uma operação em 
API segue um fluxo previsível e sem estado 
Stateless).
1. Request Requisição): O cliente envia um 
pedido contendo verbo, cabeçalhos e corpo 
(body).
2. Response Resposta): O servidor processa e 
retorna um status code e os dados solicitados 
(geralmente JSON.
Verbo HTTP Ação no Sistema Operação de Banco Status Típico
GET Buscar informações READ 200 OK
POST Criar novo registro CREATE 201 Created
PUT Atualizar completo UPDATE 204 No Content
DELETE Remover registro DELETE 204 No Content
Mapeando Operações (CRUD)
Gerenciamento de Fluxo
Em ASP.NET Core, os Controllers são classes que 
herdam de ControllerBase. Eles não devem conter regras 
de negócio complexas.
Sua função é receber o JSON, chamar um Serviço e devolver a 
resposta HTTP adequada.
Controllers: O Cérebro da API
Model (Entidade)
Representa a tabela exata do banco de dados. 
Pode conter dados sensíveis como senhas, datas 
de auditoria ou chaves estrangeiras que não 
devem vazar.
DTO (Data Transfer Object)
Uma classe simples usada apenas para 
transporte. Ela filtra o que entra e sai da API, 
garantindo que o cliente receba apenas o 
necessário Encapsulamento).
Segurança e DTOs
O processo de conversão é vital em APIs REST. O C# 
trabalha com Objetos na memória, mas a Web fala Texto 
JSON.
O ASP.NET Core realiza isso automaticamente usando 
System.Text.Json.
• Serialização Saída Transforma o objeto Produto 
em uma string JSON para enviar ao cliente.
• Desserialização Entrada): Recebe um texto JSON 
do cliente e o reconstrói como um objeto C# tipado.
Serialização JSON
Família 2xx (Sucesso)
Indica que a requisição foi recebida e 
processada corretamente.
 Ex: 200 OK, 201 Created.
Família 4xx (Erro Cliente)
O cliente enviou dados errados ou não 
tem permissão.
 Ex: 400 Bad Request, 404 Not 
Found.
Família 5xx (Erro Servidor)
Falha interna na API ou no 
banco de dados.
 Ex: 500 Internal Server Error.
Status Codes: A Linguagem HTTP
Não bloqueie a Thread!
Operações de I/O (rede/banco) são lentas. Em C#, o uso 
de async/await é obrigatório para manter a API 
responsiva.
Consumo Eficiente com HttpClient
Em vez de criar dependências com new dentro do Controller (alto acoplamento), nós as 
solicitamos no construtor. O framework cuida do resto.
1. Interface
Defina um contrato (ex: 
IProdutoService). O Controller só 
conhece a interface, não a 
implementação concreta.
2. Registro
Configure no Program.cs:
builder.Services.AddScoped
 (); 
3. Injeção
O ASP.NET "injeta" a instância pronta 
no construtor do Controller 
automaticamente.
Injeção de Dependência (DI)
https://img.freepik.com/free-vector/3d-isometric-train-station-megapolis-railways-suburb-village_14411994.jpg?semt=ais_hybrid&w=740&q=80
Source: www.freepik.com
https://img.freepik.com/premium-photo/digital-blue-lock-icon-interface-with-circle-binary-numders-shield-cyber-security-protection-concept-3d-rendering_25365815
265.jpg
Source: www.freepik.com
Image Sources