Skip to content

Commit 76512a2

Browse files
committed
Register components in document deserializers
1 parent 95710e5 commit 76512a2

File tree

5 files changed

+17
-15
lines changed

5 files changed

+17
-15
lines changed

src/Microsoft.OpenApi.Readers/V2/OpenApiDocumentDeserializer.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,12 @@ public static OpenApiDocument LoadOpenApi(RootNode rootNode)
263263
MakeServers(openApidoc.Servers, openApiNode.Context, rootNode);
264264

265265
FixRequestBodyReferences(openApidoc);
266-
RegisterComponentsSchemasInGlobalRegistry(openApidoc.Components?.Schemas);
266+
267+
// Register components
268+
if (openApidoc.Components != null)
269+
{
270+
openApidoc.Workspace.RegisterComponents(openApidoc);
271+
}
267272

268273
return openApidoc;
269274
}

src/Microsoft.OpenApi.Readers/V3/OpenApiComponentsDeserializer.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,6 @@ public static OpenApiComponents LoadComponents(ParseNode node)
4444
var components = new OpenApiComponents();
4545

4646
ParseMap(mapNode, components, _componentsFixedFields, _componentsPatternFields);
47-
48-
foreach (var schema in components.Schemas)
49-
{
50-
var refUri = new Uri(OpenApiConstants.V3ReferenceUri + schema.Key);
51-
SchemaRegistry.Global.Register(refUri, schema.Value);
52-
}
53-
5447
return components;
5548
}
5649
}

src/Microsoft.OpenApi.Readers/V3/OpenApiDocumentDeserializer.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ public static OpenApiDocument LoadOpenApi(RootNode rootNode)
5151

5252
ParseMap(openApiNode, openApidoc, _openApiFixedFields, _openApiPatternFields);
5353

54+
if (openApidoc.Components != null)
55+
{
56+
openApidoc.Workspace.RegisterComponents(openApidoc);
57+
}
58+
5459
return openApidoc;
5560
}
5661
}

src/Microsoft.OpenApi.Readers/V31/OpenApiComponentsDeserializer.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,6 @@ public static OpenApiComponents LoadComponents(ParseNode node)
4242

4343
ParseMap(mapNode, components, _componentsFixedFields, _componentsPatternFields);
4444

45-
foreach (var schema in components.Schemas)
46-
{
47-
var refUri = new Uri(OpenApiConstants.V3ReferenceUri + schema.Key);
48-
SchemaRegistry.Global.Register(refUri, schema.Value);
49-
}
50-
5145
return components;
5246
}
5347
}

src/Microsoft.OpenApi.Readers/V31/OpenApiDocumentDeserializer.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Microsoft.OpenApi.Readers.V31
99
/// runtime Open API object model.
1010
/// </summary>
1111
internal static partial class OpenApiV31Deserializer
12-
{
12+
{
1313
private static readonly FixedFieldMap<OpenApiDocument> _openApiFixedFields = new()
1414
{
1515
{
@@ -50,6 +50,11 @@ public static OpenApiDocument LoadOpenApi(RootNode rootNode)
5050

5151
ParseMap(openApiNode, openApidoc, _openApiFixedFields, _openApiPatternFields);
5252

53+
if (openApidoc.Components != null)
54+
{
55+
openApidoc.Workspace.RegisterComponents(openApidoc);
56+
}
57+
5358
return openApidoc;
5459
}
5560
}

0 commit comments

Comments
 (0)