Между вашими сниппетами есть 2 отличия, их стоит рассматривать отдельно.
1. Syn c или Asyn c
Большинство действий выполняют некоторые операции ввода-вывода, и шаблоны async / await намного предпочтительнее для обработки этого, это позволит вашему серверу обрабатывать гораздо больше одновременных запросов.
2. Обычные данные или IActionResult
Прямое возвращение данных - это запрос ASP. NET обернуть их в ответ для вас. Это легко, но как только вы попытаетесь добавить проверки, это станет проблемой c. Любая ошибка будет возвращена как статус 500 (внутренняя ошибка сервера), хорошо спроектированный API должен иметь возможность возвращать 400 (неверный запрос) или 404 (не найден), если применимо.
Итак, в заключение, async Task<IActionResult>
или async Task<ActionResult<T>>
- лучшие шаблоны для действия контроллера.
Первый был взят из стартового приложения Blazor Wasm для Visual Studio.
Нет, это не так. Демо-контроллер генерирует некоторые погодные данные, но не выполняет никаких операций ввода-вывода.
Что делает выбранную короткую форму приемлемой, но считает ее имеющей «демонстрационный» уровень качества.