AIKraft/Skills/Получение и отправка данных

Получение и отправка данных

Call APIs, load data into components, and handle the async lifecycle in Blazor. USE FOR fetching data from a backend, submitting data to an API, displaying loading/error states, registering HttpClient, building service abstractions for Auto/WebAssembly render modes. DO NOT USE for form validation (see collect-user-input), prerendering persistence (see support-prerendering), or project scaffolding

dotnet official Данные

Что делает навык

Навык обеспечивает загрузку данных из API, отправку изменений и управление состояниями загрузки/ошибок в Blazor-компонентах. Он регулирует работу с HttpClient, асинхронным жизненным циклом и спецификой режимов рендеринга (Static SSR, Server, WebAssembly, Auto).

Когда применять

  • Получение данных из backend-сервиса или внешних API с отображением индикатора загрузки.
  • Отправка данных на сервер (POST/PUT/DELETE) с блокировкой кнопки отправки во время запроса.
  • Обработка ошибок сети и таймаутов с использованием ErrorBoundary или локальной обработки.
  • Перезагрузка данных при изменении параметров маршрута с защитой от дублирования запросов.

Как работает

  1. Зарегистрировать HttpClient (named или typed client) в Program.cs; для WebAssembly/Auto — в обоих проектах.
  2. Вызывать API в OnInitializedAsync для начальной загрузки или OnParametersSetAsync при изменении параметров.
  3. Использовать [StreamRendering] для Static SSR и [PersistentState] с guard (??=) для защиты от двойного вызова при prerendering.
  4. Оборачивать компоненты в ErrorBoundary для глобальной обработки ошибок; использовать ILogger для логирования исключений.
  5. Реализовать pattern cancel-and-reload с CancellationTokenSource для параметро-зависимой перезагрузки данных.
  6. При отправке данных использовать PostAsJsonAsync/PutAsJsonAsync и отключать кнопку отправки во время выполнения запроса.

Примеры запросов агенту

Как правильно загрузить список продуктов в Blazor Server с обработкой состояния загрузки?
Как реализовать перезагрузку данных при смене категории в URL с защитой от таймаутов?
Как отправить форму создания товара в API и предотвратить двойную отправку?

Что понадобится

  • NuGet пакет Microsoft.Extensions.Http
  • Настроенный HttpClient в Program.cs
  • ILogger для логирования ошибок

Описание составлено по SKILL.md навыка, сверено 05.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «fetch-and-send-data» из репозитория: # https://github.com/dotnet/skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r fetch-and-send-data/ ~/.claude/skills/fetch-and-send-data/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.