Skip to content

Commit 540b624

Browse files
committed
Add a terseOutput parameter to the OpenApiJsonWriter and refactor code
1 parent 41c1983 commit 540b624

File tree

3 files changed

+14
-24
lines changed

3 files changed

+14
-24
lines changed

src/Microsoft.OpenApi.Hidi/OpenApiService.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,17 +189,15 @@ CancellationToken cancellationToken
189189
using var outputStream = output?.Create();
190190
var textWriter = outputStream != null ? new StreamWriter(outputStream) : Console.Out;
191191

192-
var settings = new OpenApiWriterSettings();
193-
if (terseOutput)
192+
var settings = new OpenApiWriterSettings()
194193
{
195-
settings.Terse = terseOutput;
196-
}
197-
settings.InlineLocalReferences = inlineLocal;
198-
settings.InlineExternalReferences = inlineExternal;
194+
InlineLocalReferences = inlineLocal,
195+
InlineExternalReferences = inlineExternal
196+
};
199197

200198
IOpenApiWriter writer = openApiFormat switch
201199
{
202-
OpenApiFormat.Json => new OpenApiJsonWriter(textWriter, settings),
200+
OpenApiFormat.Json => terseOutput ? new OpenApiJsonWriter(textWriter, settings, terseOutput) : new OpenApiJsonWriter(textWriter, settings, false),
203201
OpenApiFormat.Yaml => new OpenApiYamlWriter(textWriter, settings),
204202
_ => throw new ArgumentException("Unknown format"),
205203
};

src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -83,20 +83,14 @@ public static void Serialize<T>(
8383
throw Error.ArgumentNull(nameof(stream));
8484
}
8585

86-
IOpenApiWriter writer;
8786
var streamWriter = new FormattingStreamWriter(stream, CultureInfo.InvariantCulture);
88-
switch (format)
89-
{
90-
case OpenApiFormat.Json:
91-
writer = new OpenApiJsonWriter(streamWriter,settings);
92-
break;
93-
case OpenApiFormat.Yaml:
94-
writer = new OpenApiYamlWriter(streamWriter, settings);
95-
break;
96-
default:
97-
throw new OpenApiException(string.Format(SRResource.OpenApiFormatNotSupported, format));
98-
}
9987

88+
IOpenApiWriter writer = format switch
89+
{
90+
OpenApiFormat.Json => new OpenApiJsonWriter(streamWriter, settings, false),
91+
OpenApiFormat.Yaml => new OpenApiYamlWriter(streamWriter, settings),
92+
_ => throw new OpenApiException(string.Format(SRResource.OpenApiFormatNotSupported, format)),
93+
};
10094
element.Serialize(writer, specVersion);
10195
}
10296

src/Microsoft.OpenApi/Writers/OpenApiJsonWriter.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,10 @@ public OpenApiJsonWriter(TextWriter textWriter, OpenApiJsonWriterSettings settin
3333
/// </summary>
3434
/// <param name="textWriter">The text writer.</param>
3535
/// <param name="settings">Settings for controlling how the OpenAPI document will be written out.</param>
36-
public OpenApiJsonWriter(TextWriter textWriter, OpenApiWriterSettings settings) : base(textWriter, settings)
36+
/// <param name="terseOutput"> Setting for allowing the JSON emitted to be in terse format.</param>
37+
public OpenApiJsonWriter(TextWriter textWriter, OpenApiWriterSettings settings, bool terseOutput = false) : base(textWriter, settings)
3738
{
38-
if (settings != null)
39-
{
40-
_produceTerseOutput = settings.Terse;
41-
}
39+
_produceTerseOutput = terseOutput;
4240
}
4341

4442
/// <summary>

0 commit comments

Comments
 (0)