Как отправить HTTP-запрос, используя имя перечисления в параметре запроса

#http #.net-core #enums #json.net #query-parameters

Вопрос:

Я попытался передать значение перечисления в качестве параметра запроса для запроса Post, но оно не принимает значение? Когда я пытаюсь отправить запрос от Swagger, он даже не отправляет запрос.

ПРИМЕЧАНИЕ: Я использую Newtonsof.Библиотека Json и я также добавили конфигурацию при запуске

 services.AddMvc(opt =>
{
    ...
})
.AddNewtonsoftJson(options =>
{
     options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
     options.SerializerSettings.Converters.Add(new StringEnumConverter());
});

 
 public enum CardBrand
{
     [Description("MASTER")]
     MASTER,
     [Description("PAYPAL")]
     PAYPAL,
     [Description("VISA")]
     VISA
}

 
 [HttpPost("{orderId}")]        
public async Task<ResponseModel<bool>> RandomTask(string orderId, CardBrand cardBrand)
{
    return await _orderService.UpdatePayment(orderId, cardBrand);
}
 

Снимок экрана Swagger

Комментарии:

1. Просто дружеское замечание-если вы решили свой собственный вопрос, предпочтительно, чтобы вы добавили свое решение в качестве ответа, а не редактировали сам вопрос, чтобы сказать «решено». Вы также можете отметить свой собственный ответ как принятый (после короткого периода ожидания), и система поймет, что вы больше не ищете решение.

2. Я этого не знал, спасибо за информацию

Ответ №1:

Swagger имеет функцию DescribeAllEnumsAsStrings, которая доступна в версии 5.0.0. Я решил свою проблему с помощью этой функции. Я надеюсь, что это сработает и для других