Можно ли запустить проверку минимального API?

Я хочу динамически генерировать некоторые конечные точки во время инициализации приложения, поэтому минимальные API идеально подходят для этого. Очевидно, что они очень схожи с точки зрения функциональности и не имеют проверки модели с помощью атрибутов (например, [Required]). Есть ли способ вручную подключить этап проверки обратно к минимальному API, или мне остались такие вещи, как FluentValidation?

Да, просто используйте перехват на уровне DI. Понятия не имею, как это сделать с помощью атрибутов, не теряя при этом рассудка.

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

Ответы 1

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

Можно ли запустить проверку минимального API?

Да, вы можете это сделать, и этого можно достичь разными способами. Например, вы можете вручную проверить свою модель с помощью минимального метода API.

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

Для проверки FluentV вам необходимо установить пакет fluent.

Итак, это полностью зависит от ваших требований и предпочтений.

Теперь давайте посмотрим, как мы могли бы реализовать это, используя метод ручной проверки.

В ядре asp.net у нас есть класс validationResult, который используется для инициализации нового экземпляра класса ValidationResult с использованием сообщения об ошибке и списка членов, имеющих ошибки проверки. Итак, мы могли бы использовать этот класс.

Чтобы использовать приведенный выше класс, мы могли бы взять модель запроса, используя Request.ReadFromJsonAsync, а затем использовать ValidationContext.

Наконец, в Validator.TryValidateObject мы можем передать модель, полученную по запросу.

Демо-модель:

public class MyModel
{
    [Required]
    public string Name { get; set; }

    [Range(1, 100)]
    public int Age { get; set; }
}

Минимальный API:

app.MapPost("/modelvalidation", async (HttpContext httpContext) =>
{
    var request = await httpContext.Request.ReadFromJsonAsync<MyModel>();

    var validationResults = new List<ValidationResult>();
    var validationContext = new ValidationContext(request, null, null);
    bool isValid = Validator.TryValidateObject(request, validationContext, validationResults, true);

    if (!isValid)
    {
        return Results.BadRequest(validationResults);
    }

    return Results.Ok("Model is valid!");
});

Выход:

Примечание. Вы можете обратиться к этому официальному документу для получения дополнительной информации.

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