Skip to content

gbLw1/ASP.NET-Core-REST-WebAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

ASP.NET Core REST Web API

Características do projeto

.NET SDK Version: net6.0

Modelo arquitetural: REST

Padrão arquitetural: Repository

Segurança: ASP.NET Identity, JWT

ORM: EntityFramework Core


Camadas

  • Api
  • Negócios
  • Acesso a dados

Desenvolvimento

Setup + Implementações iniciais

  • Criação do repositório
  • Criação do projeto (WebApi)
  • Importação dos outros projetos (camada business + data)
  • Implementação das ViewModels
  • Criação das Controllers: Main + Fornecedores
  • Abstração de configurações de DI (Program.cs)
  • Configuração do contexto do EF para usar o SqlServer (Program.cs)
  • Configuração da connection string (appsettings.json)
  • Execução das migrations da camada Data
  • Finalização de todos os endpoints de Fornecedores
  • Testes dos endpoints com Postman
  • Criação de respostas personalizadas, substituindo o padrão de validação do ModelState (MainController)
  • Criação da controller de Produtos com upload de imagens

Segurança

  • Implementação do ASP.NET Identity

    • Criação do contexto Identity (ApplicationDbContext)
    • Configuração do contexto para contemplar o SqlServer e se conectar no banco (IdentityConfig)
    • Geração + execução da migration
    • Implementação das configurações do Identity (IdentityConfig + Program.cs)
    • Tradução das mensagens de erro do Identity para pt-BR
  • Autenticação

    • Criação da controller de Autenticação (AuthController)
    • Criação da ViewModel: User (Register + Login)
  • Implementação do Json Web Token (JWT)

    • Criação da classe AppSettings
    • Implementação da section JWT com os dados da classe criada (appsettings.json)
    • Configuração do JWT (IdentityConfig)
    • Geração e utilização do Token (Método na AuthController)
  • Autenticação com Claims

    • Criação da classe CustomAuthorize
    • Implementação do atributo nas controllers
    • Adição das claims ao método de geração do Token
  • Finalização Auth: Retorno de dados extras no response da autenticação (Usuário + claims)

Versionamento e Documentação

  • Versionamento
    • Instalação dos pacotes: ApiVersioning
    • Configuração do ApiVersioning (Program.cs)
    • Declaração de versão nas controllers
  • Documentação
    • Configuração do Swagger (SwaggerConfig)
    • Autorização via JWT no Swagger (SwaggerConfig)

NuGet Packages

MVC.Api

  • AutoMapper.Extensions.Microsoft.DependencyInjection
  • Microsoft.AspNetCore.Authentication.JwtBearer
  • Microsoft.AspNetCore.Identity.EntityFrameworkCore
  • Microsoft.AspNetCore.Identity.UI
  • Microsoft.AspNetCore.Mvc.Versioning
  • Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Tools

MVC.Business

  • FluentValidation

MVC.Data

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Tools
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.SqlServer

Plataforma de aprendizagem : desenvolvedor.io
Curso : REST com ASP.NET Core WebAPI
Instrutor : Eduardo Pires