Глагол HEAD в минимальном API C#

ГОЛОВА

Метод HTTP HEAD запрашивает заголовки, которые будут возвращены, если HEAD вместо этого URL-адрес запроса был запрошен методом HTTP GET.

Например, если URL-адрес может привести к большой загрузке, запрос HEAD может прочитать его заголовок Content-Length для проверки размера файла без фактической загрузки файла.

Мой вопрос, как мне получить такое поведение в моей минимальной конечной точке API.

всякий раз, когда я тестирую свою конечную точку API в сравнении с кодом через Thunder-Client, она возвращает ошибку, когда я выбираю HEAD VERB

405 Method Not Allowed 

Однако загрузка осуществляется через GET VERB.

Я очень благодарен за любой пример использования HEAD VERB или за некоторые настройки, которые, возможно, я не знаю, как настроить.

код в этом примере относится к следующему вопросу о переполнении стека Минимальный API ASP.NET Как вернуть/загрузить файлы с URL-адреса

app.MapGet(@"download/{fileName}", async (string fileName) =>
{
    var mimeType = "application/zip";
    var path = @$"e:\{fileName}.zip";
    var bytes = await File.ReadAllBytesAsync(path);

    return Results.File(bytes, mimeType, $"{fileName}.zip");
})
          .Produces(StatusCodes.Status200OK)
          .Produces(StatusCodes.Status404NotFound)
          .WithName($"GET {EndpointCategory} by Name")
          .WithTags(Tag);

learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-a‌​pis/…

Iłya Bursov 13.01.2023 19:22

Нет необходимости в ReadAllBytes и ненужном выделении памяти для каждого запроса.

davidfowl 23.01.2023 04:49
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте MapMethods с соответствующим глаголом (docs):

app.MapMethods(@"download/{fileName}", new[] { "HEAD" }, async (string fileName) => ...);

Я использую как app.MapMethods("download/{fileName}", new[] { "GET", "HEAD" }, async (string fileName) =>

TheSloth 13.01.2023 19:41

Другие вопросы по теме