From da040f43428d85c0825b43e861aa81f390bfa863 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Mon, 3 Oct 2022 10:57:15 +0300 Subject: [PATCH 1/4] Update access modifier --- src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs index 840f9c660..d76d06d0f 100644 --- a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs +++ b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs @@ -14,7 +14,7 @@ namespace Microsoft.OpenApi.Services /// /// This class is used to walk an OpenApiDocument and convert unresolved references to references to populated objects /// - internal class OpenApiReferenceResolver : OpenApiVisitorBase + public class OpenApiReferenceResolver : OpenApiVisitorBase { private OpenApiDocument _currentDocument; private bool _resolveRemoteReferences; From f9fc28f1a3bc783bb1cbe3c46a3a3ddbc3be92d3 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Mon, 3 Oct 2022 11:45:18 +0300 Subject: [PATCH 2/4] Update public Api --- .../PublicApi/PublicApi.approved.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt index 15bc8562b..75e12f480 100755 --- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt +++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt @@ -1067,6 +1067,25 @@ namespace Microsoft.OpenApi.Services public OpenApiReferenceError(Microsoft.OpenApi.Exceptions.OpenApiException exception) { } public OpenApiReferenceError(Microsoft.OpenApi.Models.OpenApiReference reference, string message) { } } + public class OpenApiReferenceResolver : Microsoft.OpenApi.Services.OpenApiVisitorBase + { + public OpenApiReferenceResolver(Microsoft.OpenApi.Models.OpenApiDocument currentDocument, bool resolveRemoteReferences = true) { } + public System.Collections.Generic.IEnumerable Errors { get; } + public override void Visit(Microsoft.OpenApi.Interfaces.IOpenApiReferenceable referenceable) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiComponents components) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiDocument doc) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiMediaType mediaType) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiOperation operation) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiParameter parameter) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiResponses responses) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiSchema schema) { } + public override void Visit(Microsoft.OpenApi.Models.OpenApiSecurityRequirement securityRequirement) { } + public override void Visit(System.Collections.Generic.IDictionary callbacks) { } + public override void Visit(System.Collections.Generic.IDictionary examples) { } + public override void Visit(System.Collections.Generic.IDictionary headers) { } + public override void Visit(System.Collections.Generic.IDictionary links) { } + public override void Visit(System.Collections.Generic.IList parameters) { } + } public class OpenApiUrlTreeNode { public System.Collections.Generic.IDictionary> AdditionalData { get; set; } From 485c45c0fe884c5859ae85092b59edef11c51ff8 Mon Sep 17 00:00:00 2001 From: Maggie Kimani Date: Mon, 3 Oct 2022 17:42:18 +0300 Subject: [PATCH 3/4] Add XML comments --- .../Services/OpenApiReferenceResolver.cs | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs index d76d06d0f..5d7a39113 100644 --- a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs +++ b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs @@ -7,7 +7,6 @@ using Microsoft.OpenApi.Exceptions; using Microsoft.OpenApi.Interfaces; using Microsoft.OpenApi.Models; -using Microsoft.OpenApi.Services; namespace Microsoft.OpenApi.Services { @@ -20,20 +19,24 @@ public class OpenApiReferenceResolver : OpenApiVisitorBase private bool _resolveRemoteReferences; private List _errors = new List(); + /// + /// Initializes the class. + /// public OpenApiReferenceResolver(OpenApiDocument currentDocument, bool resolveRemoteReferences = true) { _currentDocument = currentDocument; _resolveRemoteReferences = resolveRemoteReferences; } - public IEnumerable Errors - { - get - { - return _errors; - } - } + /// + /// List of errors related to the OpenApiDocument + /// + public IEnumerable Errors => _errors; + /// + /// Resolves tags in OpenApiDocument + /// + /// public override void Visit(OpenApiDocument doc) { if (doc.Tags != null) @@ -42,6 +45,10 @@ public override void Visit(OpenApiDocument doc) } } + /// + /// Visits the referenceable element in the host document + /// + /// The referenceable element in the doc. public override void Visit(IOpenApiReferenceable referenceable) { if (referenceable.Reference != null) @@ -49,6 +56,11 @@ public override void Visit(IOpenApiReferenceable referenceable) referenceable.Reference.HostDocument = _currentDocument; } } + + /// + /// Resolves references in components + /// + /// public override void Visit(OpenApiComponents components) { ResolveMap(components.Parameters); @@ -62,6 +74,10 @@ public override void Visit(OpenApiComponents components) ResolveMap(components.Headers); } + /// + /// Resolves all references used in callbacks + /// + /// public override void Visit(IDictionary callbacks) { ResolveMap(callbacks); From d1580a3260c78d3e05925acd642350a375f29a2b Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 3 Oct 2022 12:28:09 -0400 Subject: [PATCH 4/4] Update src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs --- src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs index 5d7a39113..feeceb9af 100644 --- a/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs +++ b/src/Microsoft.OpenApi/Services/OpenApiReferenceResolver.cs @@ -16,7 +16,7 @@ namespace Microsoft.OpenApi.Services public class OpenApiReferenceResolver : OpenApiVisitorBase { private OpenApiDocument _currentDocument; - private bool _resolveRemoteReferences; + private readonly bool _resolveRemoteReferences; private List _errors = new List(); ///