Browse Source

Add schema to 503 headers (#14840)

Cody Robibero 4 days ago
parent
commit
27047c35a4
1 changed files with 34 additions and 19 deletions
  1. 34 19
      Jellyfin.Server/Filters/RetryOnTemporarilyUnavailableFilter.cs

+ 34 - 19
Jellyfin.Server/Filters/RetryOnTemporarilyUnavailableFilter.cs

@@ -1,6 +1,4 @@
-using System;
 using System.Collections.Generic;
 using System.Collections.Generic;
-using System.Net.Http.Headers;
 using Microsoft.OpenApi.Models;
 using Microsoft.OpenApi.Models;
 using Swashbuckle.AspNetCore.SwaggerGen;
 using Swashbuckle.AspNetCore.SwaggerGen;
 
 
@@ -10,27 +8,44 @@ internal class RetryOnTemporarilyUnavailableFilter : IOperationFilter
 {
 {
     public void Apply(OpenApiOperation operation, OperationFilterContext context)
     public void Apply(OpenApiOperation operation, OperationFilterContext context)
     {
     {
-        operation.Responses.Add("503", new OpenApiResponse()
-        {
-            Description = "The server is currently starting or is temporarily not available.",
-            Headers = new Dictionary<string, OpenApiHeader>()
+        operation.Responses.Add(
+            "503",
+            new OpenApiResponse
             {
             {
+                Description = "The server is currently starting or is temporarily not available.",
+                Headers = new Dictionary<string, OpenApiHeader>
                 {
                 {
-                    "Retry-After",
-                    new() { AllowEmptyValue = true, Required = false, Description = "A hint for when to retry the operation in full seconds." }
+                    {
+                        "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>()
                 {
                 {
-                    "Message",
-                    new() { AllowEmptyValue = true, Required = false, Description = "A short plain-text reason why the server is not available." }
+                    { "text/html", new OpenApiMediaType() }
                 }
                 }
-            },
-            Content = new Dictionary<string, OpenApiMediaType>()
-            {
-                {
-                    "text/html",
-                    new OpenApiMediaType()
-                }
-            }
-        });
+            });
     }
     }
 }
 }