AspNet6InDepth
1.0.0
Visão geral do ASP.NET 6
Fundamentos do ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
, app.Map
, app.MapWhen
, app.UseWhen
e app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
appsettings.{environment}.json
e da interface IConfiguration
IOptions
IOptionsSnapshot
ou IOptionsMonitor
HttpContext
, HttpContext.Request
e HttpContext.Response
Route
HttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
e HttpDeleteAttribute
FromQuery
: obtém valores da string de consultaFromRoute
: obtém valores dos dados da rotaFromForm
: Obtém valores de campos de formulário postadosFromBody
: Obtém valores do corpo da solicitaçãoFromHeader
: obtém valores de cabeçalhos HTTPIActionResult
ou ActionResult
Accept
Accept
estiver definido como application/xml
Accept
estiver definido como application/json
HTTP Patch
Compare
: valida se duas propriedades em um modelo correspondem.EmailAddress
: Valide se uma propriedade possui formato de email.Phone
: Valide se um imóvel possui formato de número de telefone.Range
: valide se o valor de uma propriedade estiver dentro de um intervalo especificado.RegularExpression
: valida se um valor de propriedade corresponde a uma expressão regular especificada.Required
: valide se um campo não for nulo.StringLength
: valida se o valor de uma propriedade de string não excede um limite de comprimento especificado.Url
: Valide se uma propriedade possui formato de URL.IHttpClientFactory.CreateClient();
gzip
AspNetCoreRateLimit
com provedor de memória.AspNetCoreRateLimit
e AspNetCoreRateLimit.Redis
com o provedor Azure Cache para Redis.ILogger
logger.LogTrace
logger.LogDebug
mensagens de nível de depuração de loglogger.LogInformation
mensagens de nível de informações de loglogger.Warning
mensagens de nível de aviso de loglogger.Error
mensagens de nível de erro de loglogger.Critical
log mensagens de nível críticoAzure AppInsights
IHostedService
BackgroundService
Swashbuckle.AspNetCore
para adicionar suporte Swagger OpenAPIswagger.json
no nível raizAcesso a dados no aplicativo API ASP.NET 6
Acesso a dados usando Micro ORM Dapper e PostgreSQL
/api/Persons?page=1&limit=10
/api/Persons?searchAfter=4499b79a-c710-45e4-ba87-083d22c4d6ad_2023-04-17T12:00:25&limit=10
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Persons
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Persons/b1333cad-9d7c-4a64-8823-db8c9aa55646
Acesso a dados usando EF Core 6 ORM e PostgreSQL
DbSet
às tabelas de modelo no banco de dadosDbContext
idempotent
/api/Employees?page=1&limit=10
/api/Employees?searchAfter=4499b79a-c710-45e4-ba87-083d22c4d6ad_2023-04-17T12:00:25&limit=10
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Employees
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
/api/Employees/b1333cad-9d7c-4a64-8823-db8c9aa55646
Cache de resposta no aplicativo API ASP.NET 6
IMemoryCache
StackExchange.Redis
Segurança no aplicativo API ASP.NET 6
Adicionar autenticação
Claim
, ClaimsIdentity
e ClaimsPrincipal
BCrypt.Net-Next
System.IdentityModel.Tokens.Jwt
/api/Account/Register
para registrar o usuário/api/Account/Login
para fazer login do usuário e gerar o conjunto inicial de token de acesso e token de atualização/api/Account/Token
para atualizar o token de acesso usando o token de atualização enviado/api/Account/Revoke
para revogar o token de atualizaçãoAdicionar autorização
IAuthorizationRequirement
HandleRequirementAsync
para criar um requisito de política personalizadoProgram.cs
Estudo de caso: Adicionar autenticação JWT e autorização de função usando Auth0
Tratamento de uploads e downloads de arquivos
wwwroot folder
.xlsx
do Excel para respostaTeste
Teste de unidade
xUnit.net
[Fact]
e [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
ou VerifyAll()
Teste de Integração
WebApplicationFactory
xUnit.net
Comunicação síncrona entre serviços usando gRPC e HTTP2
Comunicação assíncrona entre serviços usando filas de mensagens
Hospedando aplicativo API ASP.NET 6