Українська
Підсумки
Висновки
Вебсервіс REST надає ресурси за адресами URI, а дії над ними визначають методи HTTP і коди стану. ASP.NET Core Minimal API описує кінцеві точки методами Map…, групує їх MapGroup і прив’язує параметри з маршруту, рядка запиту, тіла JSON і контейнера залежностей. TypedResults роблять коди відповідей явними, вбудована валідація .NET 10 перевіряє DTO, а ProblemDetails задає єдиний формат помилок; для перевірки сервісу використовують OpenAPI і файли .http. Сховище за інтерфейсом дозволяє перейти від даних у пам’яті до EF Core без зміни кінцевих точок. Клієнти використовують HttpClient від IHttpClientFactory і обробляють недоступність сервера та тіла ProblemDetails.
Питання для самоперевірки
- З яких частин складаються HTTP-запит і відповідь? Для чого заголовки
Content-TypeіLocation? - Які методи HTTP безпечні, а які ідемпотентні? Чому це важливо для повтору запиту?
- Які коди стану повертає сервіс після успішних
GET,POST,PUT,DELETE? - Що таке ресурс і представлення в REST? Як правильно будувати URI колекцій і елементів?
- Що вмикає
JsonSerializerOptions.Web? Як записати перелічення назвами? - Чим Minimal API відрізняється від контролерів? З яких етапів складається
Program.cs? - Що таке конвеєр проміжного ПЗ? Чому важливий порядок викликів
app.Use…? - Як задати параметр маршруту з обмеженням? Для чого
MapGroup? - З яких джерел ASP.NET Core бере значення параметрів обробника?
- Чим
TypedResultsвідрізняється відResults? Для чого типResults<Ok<T>, NotFound>? - Як увімкнути вбудовану валідацію в .NET 10? Що отримує клієнт у разі помилки?
- Що таке
ProblemDetails? Які виклики потрібні, щоб усі помилки мали цей формат? - Як отримати документ OpenAPI сервісу? Як надіслати запит із файлу
.http? - Чому
DbContextреєструється як Scoped? Як реалізувати пагінацію в базі даних? - Чому не можна створювати
HttpClientна кожен запит? Що таке типізований клієнт?
Корисні посилання
- Minimal API: https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis
- Прив’язка параметрів: https://learn.microsoft.com/aspnet/core/fundamentals/minimal-apis/parameter-binding
- Обробка помилок в API: https://learn.microsoft.com/aspnet/core/fundamentals/error-handling-api
- Нове в ASP.NET Core 10 (валідація): https://learn.microsoft.com/aspnet/core/release-notes/aspnetcore-10.0
- OpenAPI в ASP.NET Core: https://learn.microsoft.com/aspnet/core/fundamentals/openapi/overview
- Файли
.httpу Visual Studio: https://learn.microsoft.com/aspnet/core/test/http-files System.Text.Json: https://learn.microsoft.com/dotnet/standard/serialization/system-text-json/overviewHttpClient: https://learn.microsoft.com/dotnet/fundamentals/networking/http/httpclientIHttpClientFactory: https://learn.microsoft.com/dotnet/core/extensions/httpclient-factory- HTTP Semantics, RFC 9110: https://www.rfc-editor.org/rfc/rfc9110