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