You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support relative URI resolution in $dynamicRef #2928
$dynamicRef values with relative URIs (e.g., ./external.yaml#node) are not resolved. FindDocumentByBaseUri compares the raw string against document base URIs, so a relative reference never matches an absolute document URI.
Example:
# Document A (baseUri: https://example.com/main.yaml)Tree:
properties:
next:
$dynamicRef: './external.yaml#node'# Document B (baseUri: https://example.com/external.yaml)ExternalNode:
$dynamicAnchor: nodetype: object
$dynamicRef: './external.yaml#node' should resolve to https://example.com/external.yaml (Document B), but FindDocumentByBaseUri('./external.yaml') cannot match https://example.com/external.yaml.
Proposed fix
Pass the host document's BaseUri to FindDocumentByBaseUri and resolve the relative reference via new Uri(baseUri, documentUri):
internalOpenApiDocument?FindDocumentByBaseUri(stringdocumentUri,Uri?baseUri){varresolved=baseUriis not null?newUri(baseUri,documentUri).ToString():documentUri;return_dynamicAnchorRegistryByDocument.Keys.Concat(_anchorRegistryByDocument.Keys).Distinct().FirstOrDefault(doc =>doc.BaseUri?.ToString().Equals(resolved,StringComparison.OrdinalIgnoreCase)==true);}
Scope
OpenApiWorkspace.FindDocumentByBaseUri — accept optional base URI parameter
Activity
feat(schema): resolve $dynamicRef against $dynamicAnchor via OpenApiS…
feat(schema): resolve $dynamicRef against $dynamicAnchor via OpenApiS…
feat(schema): resolve $dynamicRef against $dynamicAnchor via OpenApiS…
feat: support relative URI resolution in $dynamicRef (microsoft#2928)
feat(schema): resolve bare $dynamicRef via $dynamicAnchor index (#2913)
feat: support relative URI resolution in $dynamicRef (microsoft#2928)
feat: support relative URI resolution in $dynamicRef (#2928) (#2945)
Merge pull request #2961 from microsoft/feat/external-dynamic-to-v2
chore: Bump Microsoft.OpenApi from 2.10.0 to 2.11.0 (#420)
Bump Microsoft.OpenApi from 2.10.0 to 2.11.0 (#1458)
Update NuGet dependencies and stabilize dependency automation (#5)
feat(schema): resolve bare $dynamicRef via $dynamicAnchor index (micr…
feat: support relative URI resolution in $dynamicRef (microsoft#2928) (…
chore(deps): Bump the dotnet group with 30 updates (#16)
(PATCH): Bump the csharp-deps group with 6 updates (#81)