Prévia do material em texto
Resumo de Estudo: APIs com C# e
Orientação a Objetos
Nível Universitário | ASP.NET Core
1. O que é uma API? (A Base)
Definição: API (Application Programming Interface) é um conjunto de rotinas e padrões que
permite a comunicação entre diferentes sistemas.
● Analogia da POO: Imagine uma API como uma Interface gigante. Ela define o que
você pode fazer (o contrato) sem mostrar como é feito lá dentro (encapsulamento).
● Cenário Real: Um aplicativo de celular (Frontend) pedindo dados de usuários para um
servidor (Backend em C#).
💡 O conceito chave: A API é o "garçom". Você (cliente) faz o pedido (Request), o garçom
leva à cozinha (Servidor/Banco) e traz o prato (Response).
2. Conceitos Principais
Tipos Comuns
● RESTful: O padrão mais usado na web. Baseado em recursos (URLs) e verbos HTTP.
Leve e escalável.
● SOAP: Mais antigo, baseado em XML. Mais rígido, menos usado em projetos novos de
C#.
A Conexão com POO
● Controllers: São classes C# que herdam de ControllerBase. Gerenciam a entrada e
saída.
● Models/DTOs: Classes simples (POCOs) que representam os dados.
○ Dica de Ouro: Nunca exponha sua entidade de banco de dados diretamente. Use
DTOs (Data Transfer Objects) para desacoplar.
● Interfaces: Usadas para Injeção de Dependência (ex: IUsuarioService), permitindo
testabilidade e baixo acoplamento.
Sugestão Visual:
3. Os Verbos HTTP (O Coração do REST)
Essencial para provas! Associe o Verbo à Ação.
Verbo HTTP Ação (CRUD) O que faz? Status Sucesso
Típico
GET Read Busca dados. Não 200 OK
altera nada no
servidor.
POST Create Cria um novo recurso. 201 Created
PUT Update Atualiza um recurso
completo.
204 No Content / 200
OK
DELETE Delete Remove um recurso. 204 No Content
4. Criando APIs em C# (ASP.NET Core)
Estrutura Básica de um Controller
[ApiController] // Define comportamento de API (validações auto, etc)
[Route("api/[controller]")] // Define a rota base: api/produtos
public class ProdutosController : ControllerBase
{
// Exemplo de GET
[HttpGet("{id}")]
public IActionResult GetPorId(int id)
{
// Lógica de busca...
var produto = new { Id = id, Nome = "Notebook" };
if (produto == null) return NotFound(); // Retorna 404
return Ok(produto); // Retorna 200 com JSON
}
}
Pontos Importantes no Código
1. Attributes ([HttpGet]): Metadados que ensinam o ASP.NET como rotear o pedido.
2. IActionResult: Interface de retorno que permite enviar tanto dados (JSON) quanto
status HTTP (404, 200, 500).
Sugestão Visual:
5. Consumindo APIs (O Cliente C#)
Para conversar com outras APIs, usamos a classe HttpClient.
Boas Práticas de Consumo
● Assincronismo (async/await): Obrigatório. Requisições web são lentas. Se não usar
await, você trava a aplicação.
● Serialização: O processo de transformar Objeto C# ↔ JSON Textual.
○ JsonSerializer.Serialize(obj) (Ida)
○ JsonSerializer.Deserialize(json) (Volta)
public async Task BuscarUsuarioGithub(string user)
{
using var client = new HttpClient();
// Chamada assíncrona
var response = await
client.GetAsync($"[https://api.github.com/users/](https://api.github.com/users/){user}");
// Verifica se deu 200 OK
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize(json);
}
6. O que Cai na Prova (Checklist Rápido)
● [ ] Status Codes:
○ 2xx: Sucesso.
○ 4xx: Erro do Cliente (ex: 400 Bad Request, 401 Não Autorizado, 404 Não
Encontrado).
○ 5xx: Erro do Servidor (ex: 500 Internal Server Error - o código quebrou).
● Injeção de Dependência: Entender que o Controller recebe o Service pelo construtor.
● Stateless: O servidor não "lembra" do cliente entre requisições. Toda requisição deve
conter todas as infos necessárias (ex: Token).
7. Quadro Resumo: Conceitos Finais
Conceito Definição Curta
Endpoint O endereço final (URL) onde um serviço pode
ser acessado.
Payload/Body O corpo da requisição (os dados JSON
enviados num POST).
Swagger Ferramenta que gera uma página web
automática para testar sua API.
JSON JavaScript Object Notation. O formato padrão
de texto para troca de dados.
Resumo de Estudo: APIs com C# e Orientação a Objetos
1. O que é uma API? (A Base)
2. Conceitos Principais
Tipos Comuns
A Conexão com POO
Sugestão Visual:
3. Os Verbos HTTP (O Coração do REST)
4. Criando APIs em C# (ASP.NET Core)
Estrutura Básica de um Controller
Pontos Importantes no Código
Sugestão Visual:
5. Consumindo APIs (O Cliente C#)
Boas Práticas de Consumo
6. O que Cai na Prova (Checklist Rápido)
7. Quadro Resumo: Conceitos Finais