Skip to content

Commit 1de587c

Browse files
Address code review comments
1 parent bd577c6 commit 1de587c

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

src/Microsoft.OpenApi/Models/OpenApiDocument.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,10 +208,13 @@ public void SerializeAsV2(IOpenApiWriter writer)
208208
});
209209
}
210210
// parameters
211-
IDictionary<string, OpenApiParameter> parameters = Components?.Parameters;
211+
var parameters = Components?.Parameters != null
212+
? new Dictionary<string, OpenApiParameter>(Components.Parameters)
213+
: new Dictionary<string, OpenApiParameter>();
214+
212215
if (Components?.RequestBodies != null)
213216
{
214-
foreach (var requestBody in Components.RequestBodies)
217+
foreach (var requestBody in Components.RequestBodies.Where(b => !parameters.ContainsKey(b.Key)))
215218
{
216219
parameters.Add(requestBody.Key, requestBody.Value.ConvertToBodyParameter());
217220
}

src/Microsoft.OpenApi/Models/OpenApiOperation.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,11 @@ public void SerializeAsV2(IOpenApiWriter writer)
261261
});
262262

263263
if (RequestBody.Reference.HostDocument != null)
264-
consumes = RequestBody.GetEffective(RequestBody.Reference.HostDocument)?.Content.Keys.Distinct().ToList();
264+
{
265+
var effectiveRequestBody = RequestBody.GetEffective(RequestBody.Reference.HostDocument);
266+
if (effectiveRequestBody != null)
267+
consumes = effectiveRequestBody.Content.Keys.Distinct().ToList();
268+
}
265269
}
266270

267271
if (consumes.Any())

src/Microsoft.OpenApi/Models/OpenApiRequestBody.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,9 @@ internal OpenApiBodyParameter ConvertToBodyParameter()
169169

170170
internal IEnumerable<OpenApiFormDataParameter> ConvertToFormDataParameters()
171171
{
172+
if (Content == null || !Content.Any())
173+
yield break;
174+
172175
foreach (var property in Content.First().Value.Schema.Properties)
173176
{
174177
var paramSchema = property.Value;
@@ -180,11 +183,11 @@ internal IEnumerable<OpenApiFormDataParameter> ConvertToFormDataParameters()
180183
paramSchema.Format = null;
181184
}
182185
yield return new OpenApiFormDataParameter
183-
{
186+
{
184187
Description = property.Value.Description,
185188
Name = property.Key,
186189
Schema = property.Value,
187-
Required = Content.First().Value.Schema.Required.Contains(property.Key)
190+
Required = Content.First().Value.Schema.Required.Contains(property.Key)
188191
};
189192
}
190193
}

0 commit comments

Comments
 (0)