File tree Expand file tree Collapse file tree 3 files changed +15
-5
lines changed
src/Microsoft.OpenApi/Models Expand file tree Collapse file tree 3 files changed +15
-5
lines changed Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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 ( ) )
Original file line number Diff line number Diff 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 }
You can’t perform that action at this time.
0 commit comments