Package Description
$ dotnet add package Reo.Core.ApiDocumentationПакет Reo.Core.ApiDocumentation предназначен для интеграции Swagger (OpenAPI) с IdentityServer в ASP.NET Core-приложениях. Он решает проблему автоматической настройки Swagger-документации с поддержкой OAuth2-авторизации, используя конфигурации клиентов из IdentityServer.
Основные функции:
ClientDefinitionIdentityClientSwaggerDefinitionStrategyDefaultConfigureSwaggerOptionsIConfigureOptions<SwaggerGenOptions> для автоматической настройки Swagger.DefaultPathDocumentFilterSwashbuckle.AspNetCore (для генерации Swagger).IdentityModel.Client (для работы с IdentityServer).Install-Package Reo.Core.ApiDocumentation -Version 1.0.0
dotnet add package Reo.Core.ApiDocumentation --version 1.0.0
Добавьте в Startup.cs или Program.cs (для .NET 6+):
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
options.UseDefaultConfiguration();
});
services.Configure<AuthConfigureOptions>(Configuration.GetSection("Auth"));
}
Добавьте в appsettings.json:
{
"Auth": {
"IdentityServerUrl": "https://identityserver.example.com",
"ClientId": "my-client-id"
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
c.UseDefaultConfiguration(); // Использует конфигурацию из IdentityServer
c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OAuth2,
Flows = new OpenApiOAuthFlows
{
Implicit = new OpenApiOAuthFlow
{
AuthorizationUrl = new Uri("https://identityserver.example.com/connect/authorize"),
TokenUrl = new Uri("https://identityserver.example.com/connect/token")
}
}
});
});
}
app.UseSwaggerUI(options =>
{
options.OAuthClientId("my-client-id");
options.OAuthClientSecret("my-client-secret");
options.OAuthAppName("My Application");
});
Этот пакет распространяется под лицензией MIT License. См. файл LICENSE для подробностей.
📌 Пакет активно развивается. Для получения обновлений подписывайтесь на репозиторий.