Commit 821053b
authored
* feat: support relative URI resolution in $dynamicRef (#2928)
Set ExternalResource on non-fragment $dynamicRef references so the
workspace loader can discover and fetch external documents. Resolve
relative URIs against hostDocument.BaseUri in Target before calling
FindDocumentByBaseUri.
Tests:
- Fragment-only: ExternalResource is null
- Absolute URI: ExternalResource is set, resolves across documents
- Relative URI: ExternalResource is set, resolves against BaseUri across documents
- V31 and V32 coverage
* test: mirror V31 dynamic ref tests to V32 and fix workspace fallback
Adds 17 missing V32 test mirrors for full parity with V31 coverage.
Replaces dead '?? new OpenApiWorkspace()' fallback with null-forgiving
'!' in both V31 and V32 cross-document tests.
* fix: remove duplicate XML doc and use Uri.TryCreate for relative URI resolution
Addresses Copilot review feedback on #2945.
1 parent 9fc177b commit 821053b
5 files changed
Lines changed: 947 additions & 6 deletions
File tree
- src/Microsoft.OpenApi
- Reader
- V31
- V32
- Services
- test/Microsoft.OpenApi.Readers.Tests
- V31Tests
- V32Tests
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
459 | 462 | | |
460 | 463 | | |
461 | 464 | | |
| |||
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
455 | 455 | | |
456 | 456 | | |
457 | 457 | | |
458 | | - | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
459 | 462 | | |
460 | 463 | | |
461 | 464 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
687 | 687 | | |
688 | 688 | | |
689 | 689 | | |
690 | | - | |
| 690 | + | |
| 691 | + | |
691 | 692 | | |
692 | 693 | | |
693 | 694 | | |
| |||
698 | 699 | | |
699 | 700 | | |
700 | 701 | | |
701 | | - | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
702 | 714 | | |
703 | 715 | | |
704 | 716 | | |
| |||
Lines changed: 64 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
634 | 635 | | |
635 | 636 | | |
636 | 637 | | |
637 | | - | |
| 638 | + | |
638 | 639 | | |
639 | 640 | | |
640 | 641 | | |
| |||
1493 | 1494 | | |
1494 | 1495 | | |
1495 | 1496 | | |
1496 | | - | |
| 1497 | + | |
1497 | 1498 | | |
1498 | 1499 | | |
1499 | 1500 | | |
1500 | 1501 | | |
1501 | 1502 | | |
1502 | 1503 | | |
1503 | 1504 | | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
| 1511 | + | |
| 1512 | + | |
| 1513 | + | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
| 1526 | + | |
| 1527 | + | |
| 1528 | + | |
| 1529 | + | |
| 1530 | + | |
| 1531 | + | |
| 1532 | + | |
| 1533 | + | |
| 1534 | + | |
| 1535 | + | |
| 1536 | + | |
| 1537 | + | |
| 1538 | + | |
| 1539 | + | |
| 1540 | + | |
| 1541 | + | |
| 1542 | + | |
| 1543 | + | |
| 1544 | + | |
| 1545 | + | |
| 1546 | + | |
| 1547 | + | |
| 1548 | + | |
| 1549 | + | |
| 1550 | + | |
| 1551 | + | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
| 1563 | + | |
| 1564 | + | |
| 1565 | + | |
1504 | 1566 | | |
1505 | 1567 | | |
1506 | 1568 | | |
| |||
0 commit comments