Swashbuckle.AspNetCore (5.0.0-rc5) игнорирует поля publi c - PullRequest
0 голосов
/ 11 января 2020

Во-первых, это хорошо работало в Swashbuckle.AspNetCore v4. Поэтому, учитывая эту модель & endpoint;

public class TestRequest
{
    public string test1 { get; set; }
    public string test2;
}

[HttpPost]
public void Post([FromBody] TestRequest value)
{
}

Swagger показывает только

{
  "test1": "string"
}

в качестве значения TestRequest в качестве примера.

Предназначено ли это поведение сейчас? Есть ли способ изменить это через настройки или фильтры? У меня есть тонна импортированных услуг, которые используют только поля. (генерируется do tnet -svcutil, что довольно часто встречается)

1 Ответ

1 голос
/ 11 января 2020

хорошо, приняв предложение @ Flydog57, чтобы самому разобраться, я обнаружил, что новый Swashbuckle.AspNetCore использует MS json. net поверх Newtonsoft.

Итак, чтение через git прочитайте в десятый раз в https://github.com/domaindrivendev/Swashbuckle.AspNetCore

Я обнаружил, что есть способ вернуть сериализатор json обратно в Newtonsoft. Сначала (начиная с версии 5.0.0-rc5) установите этот пакет;

Swashbuckle.AspNetCore.Newtonsoft -Version 5.0.0-rc5

Затем в Start.ConfigureServices укажите Swashbuckle для использования с помощью;

services.AddSwaggerGenNewtonsoftSupport();

Теперь вы найдете все эти публикации c «Поля» снова появились на вашей странице.

...