Skip to content

O projeto API_Concessionaria é uma API RESTful desenvolvida com .NET Core que implementa autenticação JWT e gerenciamento de recursos como administradores e veículos. Oferece segurança robusta com controle de acesso baseado em roles, integração com MySQL via Entity Framework Core, validações personalizadas e documentação interativa com Swagger.

Notifications You must be signed in to change notification settings

PedroGSDL/API_Concessionaria

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MinimalApi com Autenticação JWT e Gerenciamento de Recursos

Descrição

Este projeto é uma Minimal API desenvolvida com .NET Core que implementa autenticação baseada em JWT (JSON Web Token) e permite o gerenciamento de recursos como administradores e veículos. Ele utiliza práticas modernas de desenvolvimento backend, incluindo autorização baseada em perfis, validações personalizadas e integração com banco de dados relacional.

A API foi projetada para atender sistemas que exigem segurança, escalabilidade e extensibilidade. Ideal para aplicações que precisam de APIs RESTful para operações de CRUD com autenticação segura.


Funcionalidades

  1. Autenticação e Autorização:

    • JWT Token para autenticação.
    • Suporte a perfis de usuários (ex.: Adm, Editor).
    • Controle de acesso baseado em roles.
  2. Gerenciamento de Administradores:

    • Login e geração de token JWT.
    • Listagem, busca, criação e exclusão de administradores.
    • Endpoints protegidos por autorização (somente usuários com perfil "Adm" têm acesso).
  3. Gerenciamento de Veículos:

    • Endpoints para cadastro, edição, remoção e listagem de veículos.
    • Validação de dados (ex.: ano do veículo não pode ser anterior a 1950).
    • Controle de acesso baseado em roles (ex.: apenas "Adm" pode deletar veículos).
  4. Swagger UI:

    • Documentação interativa gerada automaticamente para testar os endpoints.
    • Integração com autenticação JWT para testar endpoints protegidos.
  5. Validações de Dados:

    • Respostas detalhadas para erros de validação de campos obrigatórios.
  6. Conexão com Banco de Dados:

    • Integração com MySQL usando Entity Framework Core.
    • Suporte para migrações de banco de dados.

Tecnologias Utilizadas

  • .NET Core (Minimal API)
  • C#
  • Entity Framework Core (ORM)
  • Autenticação JWT
  • Swagger para documentação interativa
  • MySQL como banco de dados relacional
  • CORS para controle de acesso
  • Dependency Injection para desacoplamento de serviços

Como Rodar o Projeto Localmente

Pré-requisitos

  1. .NET 7 SDK ou superior.
  2. Banco de dados MySQL configurado.
  3. Ferramentas como Visual Studio ou Visual Studio Code.

Passos

  1. Clone o repositório:

    git clone https://github.com/seu-usuario/seu-repositorio.git
  2. Configure o arquivo appsettings.json com as informações de conexão do banco de dados e a chave JWT:

    {
        "ConnectionStrings": {
            "MySql": "Server=localhost;Database=MinimalApiDb;User=root;Password=sua_senha"
        },
        "Jwt": {
            "Key": "sua-chave-secreta"
        }
    }
  3. Aplique as migrações para o banco de dados:

    dotnet ef database update
  4. Rode a aplicação:

    dotnet run
  5. Acesse o Swagger na URL:

    http://localhost:5000
    

Exemplo de Requisição

Endpoint: Login de Administrador

POST /administradores/login

Body:

{
    "email": "admin@exemplo.com",
    "senha": "senha123"
}

Resposta (200 OK):

{
    "email": "admin@exemplo.com",
    "perfil": "Adm",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Contribuições

  • Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou sugestões!

About

O projeto API_Concessionaria é uma API RESTful desenvolvida com .NET Core que implementa autenticação JWT e gerenciamento de recursos como administradores e veículos. Oferece segurança robusta com controle de acesso baseado em roles, integração com MySQL via Entity Framework Core, validações personalizadas e documentação interativa com Swagger.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy