Skip to content

Desenvolvendo uma ASP.NET Web API. Aulas ministradas pelo profº Macoratti.

Notifications You must be signed in to change notification settings

PriciLeite/APICatalogo-Restful

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌐 API REST - CATÁLOGO DE PRODUTOS PARA E-COMMERCE

🚀 Introdução

Esta API foi desenvolvida com o objetivo de fornecer um catálogo de produtos, armazenados por categorias. Construída usando .NET e C#, ela permite extrair os produtos da base de dados e integrar as diversas aplicações existentes no negócio, .

🛠️ Tecnologias Utilizadas

  • Linguagem: C#
  • Framework: ASP.NET Core 6
  • Banco de Dados: SQL Server
  • Autenticação: JWT (JSON Web Token)
  • ORM: Entity Framework Core

📦 Instalação

  1. Clone o Repositório

    git clone https://github.com/usuario/repositorio.git
    cd repositorio
  2. Configure o Banco de Dados

    • Atualize a string de conexão no arquivo appsettings.json:
      "ConnectionStrings": {
        "DefaultConnection": "Server=localhost;Database=MinhaApiDb;User Id=usuario;Password=senha;"
      }
  3. Restaurar Pacotes NuGet

    dotnet restore
  4. Aplicar Migrações

    dotnet ef database update
  5. Rodar a Aplicação

    dotnet run

🔑 Autenticação

A API utiliza JWT para autenticação. Para acessar os endpoints protegidos, é necessário incluir o token JWT no cabeçalho das requisições.

Exemplo de Autenticação:

POST /api/auth/login HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json

{
  "username": "usuario",
  "password": "senha"
}

Resposta:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

📚 Documentação da API

Endpoints para Catálogo


Método Endpoint Descrição Autenticação
GET /api/catalogos Retorna a lista de todos os produtos Não
GET /api/catalogos/{id} Retorna um produto específico pelo ID Não
POST /api/catalogos Cria um novo produto 🔒 Sim
PUT /api/catalogos/{id} Atualiza os dados de um produto específico 🔒 Sim
DELETE /api/catalogos/{id} Remove um produto específico 🔒 Sim

Endpoints para Produtos


Método Endpoint Descrição Autenticação
GET /api/produtos Retorna a lista de todos os produtos Não
GET /api/produtos/{id} Retorna um produto específico pelo ID Não
POST /api/produtos Cria um novo produto 🔒 Sim
PUT /api/produtos/{id} Atualiza os dados de um produto específico 🔒 Sim
DELETE /api/produtos/{id} Remove um produto específico 🔒 Sim

Descrição dos Endpoints

  1. GET /api/catalogos:
    • Retorna a lista de todos os catálogos disponíveis.
    • Resposta de Sucesso:
    {
     "id": 10,
     "nome": "Periféricos",
     "descricao": "Dispositivos que complementam o funcionamento de um computador.",
     "produtos": [
       {
         "id": 101,
         "nome": "Teclado Mecânico RGB",
         "descricao": "Teclado mecânico com iluminação RGB e switches Blue.",
         "preco": 299.99,
         "estoque": 50,
         "dataCriacao": "2024-08-29T12:34:56Z",
         "dataAtualizacao": "2024-08-29T12:34:56Z"
    },
    
    

Descrição dos Endpoints

  1. GET /api/produtos:
    • Retorna a lista de todos os produtos disponíveis.
    • Resposta de Sucesso:

Exemplo de Requisição

GET /api/produtos/{id}

GET /api/produtos/{id} HTTP/1.1
Host: api.exemplo.com
Authorization: Bearer {seu-token-aqui}

Resposta de Sucesso:

{
  "data": [
    {
      "id": 101,
      "nome": "Teclado Mecânico RGB",
      "descricao": "Teclado mecânico com iluminação RGB.",
      "preco": 299.99,
      "estoque": 50,
      "categoria": "Periféricos"
    },

Erros Comuns:

  • 401 Unauthorized: Token inválido ou não fornecido.
  • 404 Not Found: Recurso não encontrado.

🔄 Fluxos de Trabalho

Use o diagrama abaixo para entender como os recursos da API interagem:

Usuário -> [POST /api/auth/login] -> Token JWT
Token JWT -> [GET /api/usuarios] -> Dados dos Usuários

📝 Boas Práticas

  • Mantenha o token JWT seguro: Armazene o token em um local seguro e nunca o exponha no front-end.
  • Tratamento de erros: Sempre verifique os códigos de status HTTP e trate-os de forma adequada no seu cliente.

🧩 Recursos Adicionais

🎨 Layout Visual

Abaixo estão capturas de tela dos endpoints mais importantes acessados através do Swagger:

Swagger UI

🤝 Contribuição

Contribuições são bem-vindas! Para começar:

  • Crie um fork do projeto
  • Crie um branch para a sua feature (git checkout -b minha-feature)
  • Faça commit das suas mudanças (git commit -m 'Adiciona nova feature')
  • Envie o código para o branch (git push origin minha-feature)
  • Abra um Pull Request

🛡️ Licença

Este projeto foi desenvolvido por mim, Priscila Leite, para compor meu acervo de projetos com C# e .Net

About

Desenvolvendo uma ASP.NET Web API. Aulas ministradas pelo profº Macoratti.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages