1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
using System.Collections.Generic;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
namespace Jellyfin.Server.Filters;
internal class RetryOnTemporarilyUnavailableFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
operation.Responses.TryAdd(
"503",
new OpenApiResponse
{
Description = "The server is currently starting or is temporarily not available.",
Headers = new Dictionary<string, OpenApiHeader>
{
{
"Retry-After", new OpenApiHeader
{
AllowEmptyValue = true,
Required = false,
Description = "A hint for when to retry the operation in full seconds.",
Schema = new OpenApiSchema
{
Type = "integer",
Format = "int32"
}
}
},
{
"Message", new OpenApiHeader
{
AllowEmptyValue = true,
Required = false,
Description = "A short plain-text reason why the server is not available.",
Schema = new OpenApiSchema
{
Type = "string",
Format = "text"
}
}
}
},
Content = new Dictionary<string, OpenApiMediaType>()
{
{ "text/html", new OpenApiMediaType() }
}
});
}
}
|