Как использовать Swagger Codegen с ядром .NET

Я могу интегрировать пользовательский интерфейс Swagge в свой веб-API с помощью Swashbuckle. Я также хочу изучить функцию кодогенерации чванства. Может ли кто-нибудь помочь - как я могу интегрировать кодогенерацию swagger в мой проект веб-API? Или мне нужно скачать какой-нибудь инструмент? Я хочу иметь возможность размещать кодогенератор и передавать спецификации формы json / raml для создания клиента в ядре .net.

Я не могу найти достаточно документов по вышеизложенному.

РЕДАКТИРОВАТЬ: я хочу знать, как разместить генерацию кода в моем WEBAPI.

Спасибо!


person arpymastro    schedule 31.01.2018    source источник
comment
Вы посещали документацию и форум поддержки? Может быть руководство по началу работы   -  person Jamie Taylor    schedule 31.01.2018
comment
@JamieTaylor Я не могу понять, нужно ли мне загружать инструмент кодогенерации или есть какие-либо способы напрямую интегрировать его в код. Как мы делаем для чванства пользовательского интерфейса   -  person arpymastro    schedule 31.01.2018
comment
Не могли бы вы пояснить, что вы имеете в виду под интеграцией Swagger Codegen? 1) Создайте клиентские SDK для вашего API, чтобы вы могли предоставлять эти SDK своим пользователям. 2) Разместите кодогенерацию в своем приложении аналогично тому, что делает Swagger Editor. 3) Что-то еще?   -  person Helen    schedule 31.01.2018
comment
@Helen, да, я хочу разместить кодогенерацию в своем приложении .. Я уже размещаю Swagger UI, но не могу найти, как я могу разместить кодогенерацию   -  person arpymastro    schedule 01.02.2018
comment
Ознакомьтесь с stackoverflow.com/a/33365276/113116 и stackoverflow.com/q/39730438/113116   -  person Helen    schedule 01.02.2018
comment
@Helen - в URL-адресах, которые они упомянули, чтобы использовать generator.swagger.io, поэтому мне нужно будет отправить свои файлы на сторонние сайты. Можно ли разместить этот генератор в моем окружении?   -  person arpymastro    schedule 01.02.2018


Ответы (2)


Вы должны установить пакет nuget "Swashbuckle.AspNetCore.Swagger", щелкнув правой кнопкой мыши свой проект и выбрав "Управление пакетами nuget".

Затем вы должны добавить эти коды в место запуска вашего проекта, например. Program.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();

    // Register the Swagger generator, defining one or more Swagger documents
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
    });
}

public void Configure(IApplicationBuilder app)
{
    // Enable middleware to serve generated Swagger as a JSON endpoint.
    app.UseSwagger();

    app.UseMvc();
}
person Metehan Senol    schedule 31.01.2018
comment
Это фантастически лаконичный способ описать, что нужно сделать, чтобы добавить Swagger. Для более длинной версии я бы порекомендовал один из мои сообщения в блоге (где я беру уже существующее приложение и добавляю к нему чванство, а также включаю XML-документацию) - person Jamie Taylor; 31.01.2018
comment
@Metehan, это для Swagger UI. Я могу это создать. Мне нужны подробности о кодогенерации чванства - person arpymastro; 31.01.2018
comment
Прошу прощения за недоразумение, но это довольно подробная тема. Вы можете посмотреть сообщение в блоге, которое @JamieTaylor указал выше. - person Metehan Senol; 31.01.2018
comment
@MetehanSenol просматривали ли вы документацию и форум поддержки? Может быть руководство по началу работы - person Jamie Taylor; 31.01.2018
comment
@MetehanSenol В любом случае спасибо! - person arpymastro; 31.01.2018
comment
У меня очень похожий вопрос, и этот ответ явно не касается вопроса OP. Достаточно хорошо задокументировано, как добавить чванство в проект dotnet, но как мы можем автоматически сгенерировать клиент javascript из этого чванства, аналогично генерации кода чванства. - person Dewey Vozel; 07.11.2020

Похоже, вы просто хотите сгенерировать C # из спецификации OpenApi (входные данные предоставляет ваша реализация Swagger) вашего API.

Чтобы сгенерировать код (например, C #) из файла спецификации OpenApi вашего API, вы можете сделать что-то вроде этого:

java -jar .\openapi-generator-cli-5.0.0-beta3.jar generate -i https://localhost:xxxx/api/v1/swagger.json -g csharp

Вам необходимо загрузить OpenApi Generator Jar. В качестве альтернативы вы можете загрузить свой код в веб-генератор. Но я всегда запускал это локально; вы никогда не знаете, где заканчивается ваш код.

person Jeffrey Verpoort    schedule 03.02.2021
comment
правильный язык, неправильная версия. Он спрашивает о ядре .NET (1, 2 или 3) или .NET (5 или 6). В настоящее время единственными внутренними генераторами .NET для swaggergen являются csharp и csharp-dotnet2. csharp - для .NET Framework 4.5, а csharp-dotnet2 - для .NET Framework 2.0. - person Jacrys; 07.05.2021