Skip to content

Commit 1b52d4f

Browse files
committed
Add support for generating OpenAPI v2 spec. Closes #952
1 parent f99ea8f commit 1b52d4f

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

dev-proxy-plugins/RequestLogs/OpenApiSpecGeneratorPlugin.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
4545
internal class OpenApiSpecGeneratorPluginConfiguration
4646
{
4747
public bool IncludeOptionsRequests { get; set; } = false;
48+
49+
public int SpecVersion { get; set; } = 3;
4850
}
4951

5052
public class OpenApiSpecGeneratorPlugin(IPluginEvents pluginEvents, IProxyContext context, ILogger logger, ISet<UrlToWatch> urlsToWatch, IConfigurationSection? configSection = null) : BaseReportingPlugin(pluginEvents, context, logger, urlsToWatch, configSection)
@@ -355,7 +357,15 @@ request.Context is null ||
355357
{
356358
var server = openApiDoc.Servers.First();
357359
var fileName = GetFileNameFromServerUrl(server.Url);
358-
var docString = openApiDoc.SerializeAsJson(OpenApiSpecVersion.OpenApi3_0);
360+
361+
var openApiSpecVersion = _configuration.SpecVersion switch
362+
{
363+
2 => OpenApiSpecVersion.OpenApi2_0,
364+
3 => OpenApiSpecVersion.OpenApi3_0,
365+
_ => throw new NotSupportedException($"OpenAPI spec version {_configuration.SpecVersion} is not supported. Supported versions are 2 and 3.")
366+
};
367+
368+
var docString = openApiDoc.SerializeAsJson(openApiSpecVersion);
359369

360370
Logger.LogDebug(" Writing OpenAPI spec to {fileName}...", fileName);
361371
File.WriteAllText(fileName, docString);

0 commit comments

Comments
 (0)