Skip to content

Commit 824d615

Browse files
committed
feat: Add matched IncludeParameters into spec with their default values
1 parent a612edb commit 824d615

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

DevProxy.Plugins/Generation/OpenApiSpecGeneratorPlugin.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Microsoft.Extensions.Configuration;
1010
using Microsoft.Extensions.Logging;
1111
using Microsoft.OpenApi;
12+
using Microsoft.OpenApi.Any;
1213
using Microsoft.OpenApi.Extensions;
1314
using Microsoft.OpenApi.Interfaces;
1415
using Microsoft.OpenApi.Models;
@@ -326,17 +327,31 @@ private void SetParametersFromQueryString(OpenApiOperation operation, NameValueC
326327

327328
foreach (var (key, value) in dictionary)
328329
{
329-
operation.Parameters.Add(new()
330+
var isRequired = Configuration.IncludeParameters.Any(p => string.Equals(p, key, StringComparison.Ordinal));
331+
332+
OpenApiParameter parameter = new()
330333
{
331334
Name = key,
332335
In = ParameterLocation.Query,
333-
Required = false,
336+
Required = isRequired,
334337
Schema = new() { Type = "string" }
335-
});
338+
};
339+
SetParameterDefault(parameter, value);
340+
341+
operation.Parameters.Add(parameter);
336342
Logger.LogDebug(" Added query string parameter {ParameterKey}", key);
337343
}
338344
}
339345

346+
private static void SetParameterDefault(OpenApiParameter parameter, object? value)
347+
{
348+
if (!parameter.Required || value is null)
349+
{
350+
return;
351+
}
352+
parameter.Schema.Default = new OpenApiString(value.ToString());
353+
}
354+
340355
private void SetResponseFromSession(OpenApiOperation operation, Response response)
341356
{
342357
if (response is null)

0 commit comments

Comments
 (0)