AspNet6InDepth
1.0.0
Descripción general de ASP.NET 6
Fundamentos de ASP.NET 6
Program.csIMiddlewareRequestDelegateapp.Use , app.Map , app.MapWhen , app.UseWhen y app.Runapp.UseStaticFiles();app.UseCors();ProblemDetailsappsettings.{environment}.json y la interfaz IConfigurationIOptions<T>IOptionsSnapshot<T> o IOptionsMonitor<T>HttpContext , HttpContext.Request y HttpContext.ResponseRouteHttpGetAttribute , HttpPostAttribute , HttpPutAttribute , HttpPatchAttribute y HttpDeleteAttributeFromQuery : 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<T> o ActionResult<T>AcceptAccept está configurado en application/xmlAccept está configurado en application/jsonHTTP PatchCompare : 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();gzipAspNetCoreRateLimit con proveedor de memoria.AspNetCoreRateLimit y AspNetCoreRateLimit.Redis con el proveedor Azure Cache para Redis.ILogger<T>logger.LogTracelogger.LogDebuglogger.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 AppInsightsIHostedServiceBackgroundServiceSwashbuckle.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-db8c9aa55646Acceso a datos utilizando EF Core 6 ORM y PostgreSQL
DbSet<T> a las tablas del modelo en la base de datosDbContextidempotent/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-db8c9aa55646Almacenamiento en caché de respuestas en la aplicación API ASP.NET 6
IMemoryCacheStackExchange.RedisSeguridad en la aplicación API ASP.NET 6
Agregar autenticación
Claim , ClaimsIdentity y ClaimsPrincipalBCrypt.Net-NextSystem.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
IAuthorizationRequirementHandleRequirementAsync para crear un requisito de política personalizadoProgram.csEstudio 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]IClassFixtureICollectionFixtureMoqVerify() o VerifyAll()Pruebas de integración
WebApplicationFactory<TStartup>xUnit.netComunicació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