AspNet6InDepth
1.0.0
Обзор ASP.NET 6
Основы ASP.NET 6
Program.cs
IMiddleware
RequestDelegate
app.Use
, app.Map
, app.MapWhen
, app.UseWhen
и app.Run
app.UseStaticFiles();
app.UseCors();
ProblemDetails
appsettings.{environment}.json
и интерфейса IConfiguration
IOptions
IOptionsSnapshot
или IOptionsMonitor
HttpContext
, HttpContext.Request
и HttpContext.Response
Route
.HttpGetAttribute
, HttpPostAttribute
, HttpPutAttribute
, HttpPatchAttribute
и HttpDeleteAttribute
FromQuery
: получает значения из строки запроса.FromRoute
: получает значения из данных маршрута.FromForm
: получает значения из опубликованных полей формы.FromBody
: получает значения из тела запроса.FromHeader
: получает значения из заголовков HTTP.IActionResult
или ActionResult
Accept
.Accept
установлено значение application/xml
Accept
установлено значение application/json
HTTP Patch
Compare
: проверьте, совпадают ли два свойства в модели.EmailAddress
: проверьте, имеет ли свойство формат электронной почты.Phone
: проверьте, имеет ли свойство формат телефонного номера.Range
: проверьте, попадает ли значение свойства в указанный диапазон.RegularExpression
: проверяет, соответствует ли значение свойства указанному регулярному выражению.Required
: проверьте, не является ли поле пустым.StringLength
: проверяет, не превышает ли значение свойства строки указанный предел длины.Url
: проверьте, имеет ли свойство формат URL.IHttpClientFactory.CreateClient();
gzip
.AspNetCoreRateLimit
с поставщиком памяти.AspNetCoreRateLimit
и AspNetCoreRateLimit.Redis
с поставщиком кэша Azure для Redis.ILogger
logger.LogTrace
сообщения уровня трассировки журналаlogger.LogDebug
записывает сообщения уровня отладкиlogger.LogInformation
сообщения уровня информации журналаlogger.Warning
Сообщения уровня предупреждений журналаlogger.Error
log сообщения об уровне ошибокlogger.Critical
регистрирует сообщения критического уровняAzure AppInsights
SDK.IHostedService
BackgroundService
Swashbuckle.AspNetCore
для добавления поддержки Swagger OpenAPI.swagger.json
с корневого уровня.Доступ к данным в приложении API ASP.NET 6
Доступ к данным с использованием Micro ORM Dapper и 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
Доступ к данным с использованием EF Core 6 ORM и PostgreSQL
DbSet
в таблицы модели в базе данных.DbContext
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
Кэширование ответов в приложении API ASP.NET 6
IMemoryCache
StackExchange.Redis
Безопасность в приложении API ASP.NET 6
Добавить аутентификацию
Claim
, ClaimsIdentity
и ClaimsPrincipal
BCrypt.Net-Next
nuget.System.IdentityModel.Tokens.Jwt
/api/Account/Register
для регистрации пользователя/api/Account/Login
для входа в систему пользователя и создания исходного набора токена доступа и токена обновления./api/Account/Token
для обновления токена доступа с использованием отправленного токена обновления./api/Account/Revoke
чтобы отозвать токен обновления.Добавить авторизацию
IAuthorizationRequirement
HandleRequirementAsync
, чтобы создать требование настраиваемой политики.Program.cs
Практический пример: добавление аутентификации JWT и авторизации ролей с использованием Auth0
Обработка загрузки файлов и загрузок файлов
wwwroot folder
.xlsx
в ответТестирование
Модульное тестирование
xUnit.net
[Fact]
и [Theory]
Dispose
[InlineData]
[MemberData]
[ClassData]
IClassFixture
ICollectionFixture
Moq
Verify()
или VerifyAll()
Интеграционное тестирование
WebApplicationFactory
xUnit.net
.Синхронная межсервисная связь с использованием gRPC и HTTP2.
Асинхронная межсервисная связь с использованием очередей сообщений
Размещение приложения ASP.NET 6 API