Présentation d'ASP.NET 6
Principes fondamentaux d'ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
, app.Map
, app.MapWhen
, app.UseWhen
et app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
appsettings.{environment}.json
et l'interface IConfiguration
IOptions
IOptionsSnapshot
ou IOptionsMonitor
HttpContext
, HttpContext.Request
et HttpContext.Response
Route
HttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
et HttpDeleteAttribute
FromQuery
: obtient les valeurs de la chaîne de requêteFromRoute
: obtient les valeurs des données d'itinéraireFromForm
: obtient les valeurs des champs de formulaire publiésFromBody
: récupère les valeurs du corps de la requêteFromHeader
: récupère les valeurs des en-têtes HTTPIActionResult
ou ActionResult
Accept
Accept
est défini sur application/xml
Accept
est défini sur application/json
HTTP Patch
Compare
: Valide si deux propriétés d'un modèle correspondent.EmailAddress
: Validez si une propriété a un format email.Phone
: Validez si un bien possède un format de numéro de téléphone.Range
: validez si la valeur d'une propriété se situe dans une plage spécifiée.RegularExpression
: valide si une valeur de propriété correspond à une expression régulière spécifiée.Required
: Valider si un champ n'est pas nul.StringLength
: validez si la valeur d'une propriété de chaîne ne dépasse pas une limite de longueur spécifiée.Url
: Validez si une propriété a un format URL.IHttpClientFactory.CreateClient();
gzip
AspNetCoreRateLimit
avec fournisseur de mémoire.AspNetCoreRateLimit
et AspNetCoreRateLimit.Redis
avec le fournisseur Azure Cache pour Redis.ILogger
logger.LogTrace
messages de niveau de trace du journallogger.LogDebug
messages de niveau de débogage du journallogger.LogInformation
messages de niveau d'information du journallogger.Warning
messages de niveau d'avertissement du journallogger.Error
messages de niveau d'erreur du journallogger.Critical
log messages de niveau critiqueAzure AppInsights
IHostedService
BackgroundService
Swashbuckle.AspNetCore
pour ajouter la prise en charge de Swagger OpenAPIswagger.json
à partir du niveau racineAccès aux données dans l'application API ASP.NET 6
Accès aux données à l'aide de Micro ORM Dapper et 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
Accès aux données à l'aide d'EF Core 6 ORM et PostgreSQL
DbSet
aux tables de modèle dans la base de donnéesDbContext
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
Mise en cache des réponses dans l'application API ASP.NET 6
IMemoryCache
StackExchange.Redis
Sécurité dans l'application API ASP.NET 6
Ajouter une authentification
Claim
, ClaimsIdentity
et ClaimsPrincipal
BCrypt.Net-Next
System.IdentityModel.Tokens.Jwt
/api/Account/Register
pour enregistrer l'utilisateur/api/Account/Login
pour connecter l'utilisateur et générer l'ensemble initial de jeton d'accès et de jeton d'actualisation/api/Account/Token
pour actualiser le jeton d'accès à l'aide du jeton d'actualisation envoyé/api/Account/Revoke
pour révoquer le jeton d'actualisationAjouter une autorisation
IAuthorizationRequirement
HandleRequirementAsync
pour créer une exigence de stratégie personnaliséeProgram.cs
Étude de cas : ajouter l'authentification JWT et l'autorisation de rôle à l'aide d'Auth0
Gestion des téléchargements de fichiers et des téléchargements de fichiers
wwwroot folder
.xlsx
vers la réponseEssai
Tests unitaires
xUnit.net
[Fact]
et [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
ou VerifyAll()
Tests d'intégration
WebApplicationFactory
xUnit.net
Communication interservice synchrone utilisant gRPC et HTTP2
Communication interservices asynchrone à l'aide de files d'attente de messages
Hébergement de l'application API ASP.NET 6