@@ -54,21 +54,27 @@ public static IEndpointConventionBuilder MapOpenApi(this IEndpointRouteBuilder e
54
54
var document = await documentService . GetOpenApiDocumentAsync ( context . RequestServices , context . Request , context . RequestAborted ) ;
55
55
var documentOptions = options . Get ( lowercasedDocumentName ) ;
56
56
57
- using var writer = new Utf8BufferTextWriter ( ) ;
58
- writer . SetWriter ( context . Response . BodyWriter ) ;
57
+ using var textWriter = new Utf8BufferTextWriter ( ) ;
58
+ textWriter . SetWriter ( context . Response . BodyWriter ) ;
59
+
60
+ string contentType ;
61
+ OpenApiWriterBase openApiWriter ;
59
62
60
63
if ( UseYaml ( pattern ) )
61
64
{
62
- context . Response . ContentType = "text/plain+yaml;charset=utf-8" ;
63
- await context . Response . StartAsync ( ) ;
64
- await document . SerializeAsync ( new OpenApiYamlWriter ( writer ) , documentOptions . OpenApiVersion , context . RequestAborted ) ;
65
+ contentType = "text/plain+yaml;charset=utf-8" ;
66
+ openApiWriter = new OpenApiYamlWriter ( textWriter ) ;
65
67
}
66
68
else
67
69
{
68
- context . Response . ContentType = "application/json;charset=utf-8" ;
69
- await context . Response . StartAsync ( ) ;
70
- await document . SerializeAsync ( new OpenApiJsonWriter ( writer ) , documentOptions . OpenApiVersion , context . RequestAborted ) ;
70
+ contentType = "application/json;charset=utf-8" ;
71
+ openApiWriter = new OpenApiJsonWriter ( textWriter ) ;
71
72
}
73
+
74
+ context . Response . ContentType = contentType ;
75
+
76
+ await context . Response . StartAsync ( ) ;
77
+ await document . SerializeAsync ( openApiWriter , documentOptions . OpenApiVersion , context . RequestAborted ) ;
72
78
await context . Response . BodyWriter . FlushAsync ( context . RequestAborted ) ;
73
79
}
74
80
} ) . ExcludeFromDescription ( ) ;
0 commit comments