Added OpenAPI spec for #12880

This commit is contained in:
JPVenson 2025-03-24 08:27:21 +00:00
parent 671d801d9f
commit aa4936c59c
2 changed files with 37 additions and 0 deletions

View File

@ -247,6 +247,7 @@ namespace Jellyfin.Server.Extensions
c.AddSwaggerTypeMappings();
c.SchemaFilter<IgnoreEnumSchemaFilter>();
c.OperationFilter<RetryOnTemporarlyUnavailableFilter>();
c.OperationFilter<SecurityRequirementsOperationFilter>();
c.OperationFilter<FileResponseFilter>();
c.OperationFilter<FileRequestFilter>();

View File

@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Net.Http.Headers;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
namespace Jellyfin.Server.Filters;
internal class RetryOnTemporarlyUnavailableFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
operation.Responses.Add("503", new OpenApiResponse()
{
Description = "The server is currently starting or is temporarly not available.",
Headers = new Dictionary<string, OpenApiHeader>()
{
{
"retry-after",
new() { AllowEmptyValue = true, Required = false, Description = "A hint for when to retry the operation." }
},
{
"message",
new() { AllowEmptyValue = true, Required = false, Description = "A short plain-text reason why the server is not available." }
}
},
Content = new Dictionary<string, OpenApiMediaType>()
{
{
"text/html",
new OpenApiMediaType()
}
}
});
}
}