Skip to content

Commit cbc2934

Browse files
committed
fix: do not serialized extraneous operations in v2
Signed-off-by: Vincent Biret <[email protected]>
1 parent 71e51ea commit cbc2934

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/Microsoft.OpenApi/Models/OpenApiPathItem.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,18 @@ public virtual void SerializeAsV2(IOpenApiWriter writer)
9898
// operations except "trace"
9999
if (Operations != null)
100100
{
101-
foreach (var operation in Operations)
101+
102+
foreach (var operation in Operations.Where(o => _standardHttp2MethodsNames.Contains(o.Key.Method, StringComparer.OrdinalIgnoreCase)))
103+
{
104+
writer.WriteOptionalObject(
105+
operation.Key.Method.ToLowerInvariant(),
106+
operation.Value,
107+
(w, o) => o.SerializeAsV2(w));
108+
}
109+
var nonStandardOperations = Operations.Where(o => !_standardHttp2MethodsNames.Contains(o.Key.Method, StringComparer.OrdinalIgnoreCase)).ToDictionary(static o => o.Key.Method, static o => o.Value);
110+
if (nonStandardOperations.Count > 0)
102111
{
103-
if (operation.Key != HttpMethod.Trace)
104-
{
105-
writer.WriteOptionalObject(
106-
operation.Key.Method.ToLowerInvariant(),
107-
operation.Value,
108-
(w, o) => o.SerializeAsV2(w));
109-
}
112+
writer.WriteRequiredMap($"x-oai-{OpenApiConstants.AdditionalOperations}", nonStandardOperations, (w, o) => o.SerializeAsV2(w));
110113
}
111114
}
112115

0 commit comments

Comments
 (0)