Генерация образца запроса с использованием Swagger в зависимости от модели - PullRequest
1 голос
/ 24 февраля 2020

Привет всем. Скажи мне, пожалуйста. Можно ли сгенерировать образец запроса в Swagger в зависимости от модели, чтобы не писать его вручную. Чтобы увидеть, какие поля есть в модели.
Возможно ли это вообще?
Потому что теперь мне нужно вручную написать описание запроса для каждого API.
Я бы хотел автоматизировать этот процесс. Я использую Swashbuckle и ASP. NET Core

1 Ответ

0 голосов
/ 27 февраля 2020

Есть место для примеров кода, вы должны добавить /// <example>123</example> на модель вместо замечаний.

Это близко к тому, что вам нужно:
http://swagger-net-test.azurewebsites.net/swagger/ui/index?filter=Company# / Компания / Company_Post

Код для этого здесь:
https://github.com/heldersepu/Swagger-Net-Test/blob/c9b554fde26367418c84fcd3682d308ae1b40d11/Swagger_Test/Models/Company.cs


Вы также можете вносить динамические c изменения с IDocumentFilter следующим образом:

    private class AddExampleDocumentFilter : IDocumentFilter
    {
        private List<Guid> Guids
        {
            get
            {
                return new List<Guid>
                {
                    Guid.Empty, Guid.Empty
                };
            }
        }

        public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry s, IApiExplorer a)
        {
            if (swaggerDoc.paths.ContainsKey("/api/Dictionary"))
            {
                var del = swaggerDoc.paths["/api/Dictionary"].delete;
                if (del != null)
                {
                    del.parameters[0].schema.example = Guids;
                }
            }
        }
    }

Вот результат этого:
http://swagger-net-test.azurewebsites.net/swagger/ui/index?filter=Dictionary# / Dictionary / Dictionary_DeleteEcho

И как только пользователь выполнит его с примерами данных, пользовательский интерфейс отобразит запрос скручивания:

...