AspNet6InDepth
1.0.0
Descripción general de ASP.NET 6
Fundamentos de ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
, app.Map
, app.MapWhen
, app.UseWhen
y app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
appsettings.{environment}.json
y la interfaz IConfiguration
IOptions
IOptionsSnapshot
o IOptionsMonitor
HttpContext
, HttpContext.Request
y HttpContext.Response
Route
HttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
y HttpDeleteAttribute
FromQuery
: obtiene valores de la cadena de consultaFromRoute
: Obtiene valores de los datos de la ruta.FromForm
: obtiene valores de los campos del formulario publicadosFromBody
: obtiene valores del cuerpo de la solicitud.FromHeader
: Obtiene valores de encabezados HTTPIActionResult
o ActionResult
Accept
Accept
está configurado en application/xml
Accept
está configurado en application/json
HTTP Patch
Compare
: valida si dos propiedades en un modelo coinciden.EmailAddress
: Valida si una propiedad tiene formato de correo electrónico.Phone
: Validar si una propiedad tiene formato de número de teléfono.Range
: valide si el valor de una propiedad se encuentra dentro de un rango específico.RegularExpression
: valida si el valor de una propiedad coincide con una expresión regular especificada.Required
: Validar si un campo no es nulo.StringLength
: valida si el valor de una propiedad de cadena no excede un límite de longitud especificado.Url
: Valida si una propiedad tiene formato URL.IHttpClientFactory.CreateClient();
gzip
AspNetCoreRateLimit
con proveedor de memoria.AspNetCoreRateLimit
y AspNetCoreRateLimit.Redis
con el proveedor Azure Cache para Redis.ILogger
logger.LogTrace
logger.LogDebug
logger.LogInformation
mensajes de nivel de información de registrologger.Warning
mensajes de nivel de advertencia del registrologger.Error
de nivel de error de registro de erroreslogger.Critical
de nivel crítico de registro críticoAzure AppInsights
IHostedService
BackgroundService
Swashbuckle.AspNetCore
nuget para agregar compatibilidad con Swagger OpenAPIswagger.json
desde el nivel raízAcceso a datos en la aplicación API ASP.NET 6
Acceso a datos mediante Micro ORM Dapper y 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
Acceso a datos utilizando EF Core 6 ORM y PostgreSQL
DbSet
a las tablas del modelo en la base de datosDbContext
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
Almacenamiento en caché de respuestas en la aplicación API ASP.NET 6
IMemoryCache
StackExchange.Redis
Seguridad en la aplicación API ASP.NET 6
Agregar autenticación
Claim
, ClaimsIdentity
y ClaimsPrincipal
BCrypt.Net-Next
System.IdentityModel.Tokens.Jwt
/api/Account/Register
para registrar el usuario/api/Account/Login
para iniciar sesión como usuario y generar el conjunto inicial de token de acceso y token de actualización/api/Account/Token
para actualizar el token de acceso usando el token de actualización enviado/api/Account/Revoke
para revocar el token de actualizaciónAgregar autorización
IAuthorizationRequirement
HandleRequirementAsync
para crear un requisito de política personalizadoProgram.cs
Estudio de caso: agregar autenticación JWT y autorización de rol mediante Auth0
Manejo de cargas y descargas de archivos
wwwroot folder
.xlsx
a la respuestaPruebas
Pruebas unitarias
xUnit.net
[Fact]
y [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
o VerifyAll()
Pruebas de integración
WebApplicationFactory
xUnit.net
Comunicación síncrona entre servicios mediante gRPC y HTTP2
Comunicación asincrónica entre servicios mediante colas de mensajes
Alojamiento de la aplicación API ASP.NET 6