AspNet6InDepth
1.0.0
Ikhtisar ASP.NET 6
Dasar-dasar ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
, app.Map
, app.MapWhen
, app.UseWhen
dan app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
standarappsettings.{environment}.json
dan antarmuka IConfiguration
IOptions
IOptionsSnapshot
atau IOptionsMonitor
HttpContext
, HttpContext.Request
dan HttpContext.Response
Route
HttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
dan HttpDeleteAttribute
FromQuery
: Mendapatkan nilai dari string kueriFromRoute
: Mendapatkan nilai dari data ruteFromForm
: Mendapatkan nilai dari kolom formulir yang dipostingFromBody
: Mendapatkan nilai dari isi permintaanFromHeader
: Mendapatkan nilai dari header HTTPIActionResult
atau ActionResult
Accept
Accept
disetel ke application/xml
Accept
disetel ke application/json
HTTP Patch
Compare
: Validasi jika dua properti dalam model cocok.EmailAddress
: Validasi apakah properti memiliki format email.Phone
: Validasi apakah suatu properti memiliki format nomor telepon.Range
: Validasi jika nilai properti berada dalam rentang tertentu.RegularExpression
: Validasi jika nilai properti cocok dengan ekspresi reguler yang ditentukan.Required
: Validasi jika suatu bidang bukan nol.StringLength
: Validasi jika nilai properti string tidak melebihi batas panjang yang ditentukan.Url
: Validasi apakah properti memiliki format URL.IHttpClientFactory.CreateClient();
gzip
AspNetCoreRateLimit
dengan penyedia memori.AspNetCoreRateLimit
dan AspNetCoreRateLimit.Redis
dengan penyedia Azure Cache for Redis.ILogger
logger.LogTrace
pesan tingkat jejak loglogger.LogDebug
pesan tingkat debug loglogger.LogInformation
pesan tingkat informasi loglogger.Warning
tingkat peringatan log peringatanlogger.Error
log pesan tingkat kesalahanlogger.Critical
pesan tingkat kritisAzure AppInsights
SDKIHostedService
BackgroundService
Swashbuckle.AspNetCore
untuk menambahkan dukungan Swagger OpenAPIswagger.json
dari tingkat rootAkses Data pada Aplikasi ASP.NET 6 API
Akses Data menggunakan Micro ORM Dapper dan 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
Akses Data menggunakan EF Core 6 ORM dan PostgreSQL
DbSet
untuk memodelkan tabel di databaseDbContext
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
Caching Respons di Aplikasi ASP.NET 6 API
IMemoryCache
StackExchange.Redis
Keamanan dalam Aplikasi ASP.NET 6 API
Tambahkan Otentikasi
Claim
, ClaimsIdentity
dan ClaimsPrincipal
BCrypt.Net-Next
System.IdentityModel.Tokens.Jwt
/api/Account/Register
untuk mendaftarkan pengguna/api/Account/Login
untuk login pengguna dan menghasilkan set awal token akses dan token penyegaran/api/Account/Token
untuk menyegarkan token akses menggunakan token penyegaran yang dikirim/api/Account/Revoke
untuk mencabut token penyegaranTambahkan Otorisasi
IAuthorizationRequirement
HandleRequirementAsync
untuk membuat persyaratan kebijakan khususProgram.cs
Studi Kasus: Tambahkan Otentikasi JWT dan Otorisasi Peran menggunakan Auth0
Menangani unggahan file dan unduhan file
wwwroot folder
.xlsx
untuk meresponsPengujian
Pengujian Satuan
xUnit.net
[Fact]
dan [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
atau VerifyAll()
Pengujian Integrasi
WebApplicationFactory
xUnit.net
Komunikasi Antar-Layanan yang sinkron menggunakan gRPC dan HTTP2
Komunikasi Antar-Layanan Asinkron menggunakan Antrean Pesan
Hosting aplikasi ASP.NET 6 API