diff options
| author | Tim Eisele <Ghost_of_Stone@web.de> | 2026-01-02 02:46:51 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-01 18:46:51 -0700 |
| commit | 23b48a0d0f92706bc4f533cfa78077796ce8da61 (patch) | |
| tree | 7583aab6970dc05c5286bafad820f680cabc604f /Jellyfin.Server/Filters/CachingOpenApiProvider.cs | |
| parent | d1055b0b3660d120fed332deb2535986d52d9e0f (diff) | |
Upgrade Swashbuckle and fix OpenAPI spec (#15886)
Diffstat (limited to 'Jellyfin.Server/Filters/CachingOpenApiProvider.cs')
| -rw-r--r-- | Jellyfin.Server/Filters/CachingOpenApiProvider.cs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Jellyfin.Server/Filters/CachingOpenApiProvider.cs b/Jellyfin.Server/Filters/CachingOpenApiProvider.cs index b560ec50e..833b68444 100644 --- a/Jellyfin.Server/Filters/CachingOpenApiProvider.cs +++ b/Jellyfin.Server/Filters/CachingOpenApiProvider.cs @@ -2,6 +2,7 @@ using System; using AsyncKeyedLock; using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.Swagger; @@ -23,6 +24,7 @@ internal sealed class CachingOpenApiProvider : ISwaggerProvider private readonly IMemoryCache _memoryCache; private readonly SwaggerGenerator _swaggerGenerator; private readonly SwaggerGeneratorOptions _swaggerGeneratorOptions; + private readonly ILogger<CachingOpenApiProvider> _logger; /// <summary> /// Initializes a new instance of the <see cref="CachingOpenApiProvider"/> class. @@ -31,15 +33,18 @@ internal sealed class CachingOpenApiProvider : ISwaggerProvider /// <param name="apiDescriptionsProvider">The api descriptions provider.</param> /// <param name="schemaGenerator">The schema generator.</param> /// <param name="memoryCache">The memory cache.</param> + /// <param name="logger">The logger.</param> public CachingOpenApiProvider( IOptions<SwaggerGeneratorOptions> optionsAccessor, IApiDescriptionGroupCollectionProvider apiDescriptionsProvider, ISchemaGenerator schemaGenerator, - IMemoryCache memoryCache) + IMemoryCache memoryCache, + ILogger<CachingOpenApiProvider> logger) { _swaggerGeneratorOptions = optionsAccessor.Value; _swaggerGenerator = new SwaggerGenerator(_swaggerGeneratorOptions, apiDescriptionsProvider, schemaGenerator); _memoryCache = memoryCache; + _logger = logger; } /// <inheritdoc /> @@ -61,7 +66,16 @@ internal sealed class CachingOpenApiProvider : ISwaggerProvider throw new InvalidOperationException("OpenApi document is generating"); } + try + { openApiDocument = _swaggerGenerator.GetSwagger(documentName); + } + catch (Exception ex) + { + _logger.LogError(ex, "OpenAPI generation error"); + throw; + } + _memoryCache.Set(CacheKey, openApiDocument, _cacheOptions); return AdjustDocument(openApiDocument, host, basePath); } |
