Skip to content

feat: add v3 endpoints#1371

Open
ArneD wants to merge 1 commit into
mainfrom
add-v3
Open

feat: add v3 endpoints#1371
ArneD wants to merge 1 commit into
mainfrom
add-v3

Conversation

@ArneD

@ArneD ArneD commented Jul 24, 2026

Copy link
Copy Markdown
Member

No description provided.

@ArneD
ArneD requested a review from a team as a code owner July 24, 2026 15:18
@ArneD
ArneD requested a review from Copilot July 24, 2026 15:19
@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces API v3 endpoints and supporting infrastructure/configuration, while reorganizing the existing v2 API into explicit versioned namespaces and updating several dependencies (notably the GrAr packages) across the solution.

Changes:

  • Add Address v3 endpoints (list/detail/search/count and change-feed scaffolding) and bind v2/v3 response options from separate configuration sections.
  • Move/rename v2 API components into versioned namespaces (Address, AddressMatch) and update tests accordingly.
  • Update GrAr package versions to 25.4.2 across projects and refresh related lockfiles.

Reviewed changes

Copilot reviewed 123 out of 123 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/AddressRegistry.Tests/ProjectionsHandlesEventTests.cs Adds v3 last-changed-list projection to projection-handling tests.
test/AddressRegistry.Tests/ApiTests/AddressSearch/QueryParserTests.cs Updates test imports for versioned search namespaces.
test/AddressRegistry.Tests/ApiTests/AddressSearch/GivenSearchQueryAndStatus.cs Switches tests to ResponseOptionsV2 options binding.
test/AddressRegistry.Tests/ApiTests/AddressSearch/GivenSearchQueryAndResultType.cs Switches tests to ResponseOptionsV2 options binding.
test/AddressRegistry.Tests/ApiTests/AddressSearch/GivenSearchQueryAndNisCode.cs Switches tests to ResponseOptionsV2 options binding.
test/AddressRegistry.Tests/ApiTests/AddressSearch/GivenSearchQueryAndMunicipalityName.cs Switches tests to ResponseOptionsV2 options binding.
test/AddressRegistry.Tests/ApiTests/AddressSearch/GivenSearchQuery.cs Switches tests to ResponseOptionsV2 options binding.
test/AddressRegistry.Tests/ApiTests/AddressMatch/Asserts/AssertionsProvider.cs Updates asserts to v2 AddressMatch response namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/Asserts/AdresMatchItemStraatnaamAssertions.cs Updates asserts to v2 AddressMatch response namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/Asserts/AdresMatchItemGemeenteAssertions.cs Updates asserts to v2 AddressMatch response namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/Asserts/AdresMatchItemAssertions.cs Updates asserts to v2 AddressMatch response namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/Asserts/AdresMatchCollectieAssertions.cs Updates asserts to v2 AddressMatch response namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/AddressMatchV2Tests.cs Updates AddressMatch v2 test wiring and options type.
test/AddressRegistry.Tests/ApiTests/AddressMatch/AddressMatchRequestValidatorTests.cs Updates validator test imports to v2 request namespace.
test/AddressRegistry.Tests/ApiTests/AddressMatch/AddressMatchRequestExtensions.cs Updates request extension imports to v2 request namespace.
test/AddressRegistry.Projections.Elastic.IntegrationTests/packages.lock.json Bumps GrAr dependency versions in integration test project lockfile.
src/AddressRegistry/packages.lock.json Bumps GrAr dependency versions in main project lockfile.
src/AddressRegistry.Snapshot.Verifier/packages.lock.json Bumps GrAr dependency versions in snapshot verifier lockfile.
src/AddressRegistry.Projector/Caches/CachesController.cs Adds projection-name mapping for the v3 last-changed-list projection.
src/AddressRegistry.Projections.Wms/packages.lock.json Bumps GrAr dependency versions in WMS projections lockfile.
src/AddressRegistry.Projections.Wfs/packages.lock.json Bumps GrAr dependency versions in WFS projections lockfile.
src/AddressRegistry.Projections.Legacy/packages.lock.json Bumps GrAr dependency versions and adjusts CrsTransform dependency shape.
src/AddressRegistry.Projections.Legacy/AddressRegistry.Projections.Legacy.csproj Adds GrAr.CrsTransform package reference.
src/AddressRegistry.Projections.LastChangedList/packages.lock.json Bumps GrAr dependency versions in last-changed-list lockfile.
src/AddressRegistry.Projections.LastChangedList.Console/packages.lock.json Bumps GrAr dependency versions in console runner lockfile.
src/AddressRegistry.Projections.LastChangedList.Console/Infrastructure/Modules/LastChangedListConsoleModule.cs Registers the v3 last-changed-list projection in the console module.
src/AddressRegistry.Projections.Integration/packages.lock.json Bumps GrAr dependency versions in integration projections lockfile.
src/AddressRegistry.Projections.Feed/Contract/AddressEventTypes.cs Updates change-feed attribute naming constants (and removes unused position value type).
src/AddressRegistry.Projections.Feed/AddressFeed/AddressDocument.cs Moves feed document status/type usage to GrAr Oslo models.
src/AddressRegistry.Projections.Extract/packages.lock.json Bumps GrAr dependency versions (and Extracts) in extract projections lockfile.
src/AddressRegistry.Projections.Elastic/packages.lock.json Bumps GrAr dependency versions in elastic projections lockfile.
src/AddressRegistry.Projections.BackOffice/packages.lock.json Bumps GrAr dependency versions in backoffice projections lockfile.
src/AddressRegistry.Projections.AddressMatch/packages.lock.json Bumps GrAr dependency versions in address-match projections lockfile.
src/AddressRegistry.Producer/packages.lock.json Bumps GrAr dependency versions in producer lockfile.
src/AddressRegistry.Producer.Snapshot.Oslo/packages.lock.json Bumps GrAr dependency versions in snapshot producer lockfile.
src/AddressRegistry.Infrastructure/packages.lock.json Bumps GrAr dependency versions in infrastructure lockfile.
src/AddressRegistry.Consumer/packages.lock.json Bumps GrAr dependency versions in consumer lockfile.
src/AddressRegistry.Consumer.Read.StreetName/packages.lock.json Bumps GrAr dependency versions in street-name consumer lockfile.
src/AddressRegistry.Consumer.Read.Postal/packages.lock.json Bumps GrAr dependency versions in postal consumer lockfile.
src/AddressRegistry.Consumer.Read.Municipality/packages.lock.json Bumps GrAr dependency versions in municipality consumer lockfile.
src/AddressRegistry.Api.Oslo/Infrastructure/Startup.cs Binds v2/v3 response options from separate configuration sections.
src/AddressRegistry.Api.Oslo/Infrastructure/Options/ResponseOptionsV3.cs Introduces v3 response options (including change-feed config).
src/AddressRegistry.Api.Oslo/Infrastructure/Options/ResponseOptionsV2.cs Renames/refactors v2 response options (removing feed config).
src/AddressRegistry.Api.Oslo/Infrastructure/Modules/MediatRModule.cs Registers v2 and v3 request handlers in DI container.
src/AddressRegistry.Api.Oslo/Infrastructure/Modules/ApiModule.cs Updates imports to new AddressMatch namespaces.
src/AddressRegistry.Api.Oslo/Convertors/StreetNameAddressStatusExtensions.cs Adds explicit mapping helpers for both Legacy and Oslo status types.
src/AddressRegistry.Api.Oslo/Convertors/MunicipalityLanguageExtensions.cs Adds mapping to Oslo Taal.
src/AddressRegistry.Api.Oslo/appsettings.json Restructures config into V2 and V3 sections (including v3 change-feed).
src/AddressRegistry.Api.Oslo/AddressMatch/V2/ValidationMessageWarningLogger.cs Moves AddressMatch v2 warning logger into v2 namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/StreetNameMapper.cs Updates AddressMatch v2 mappers to use ResponseOptionsV2 and v2 address mapper.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/Responses/AddressMatchOsloCollection.cs Moves AddressMatch v2 responses into v2 namespace and updates options type.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/Requests/AddressMatchRequestValidator.cs Moves AddressMatch v2 request validator into v2 namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/Requests/AddressMatchRequest.cs Moves AddressMatch v2 request model into v2 namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/MunicipalityMapper.cs Updates mapper to use ResponseOptionsV2.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/AddressMatchScoreableItemV2.cs Moves scoreable item into v2 namespace and updates address mapper import.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/AddressMatchHandlerV2.cs Updates handler to use IOptions<ResponseOptionsV2>.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/AddressMatchController.cs Moves AddressMatch v2 controller into v2 namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/V2/AddressMapper.cs Updates mapper to use v2 address mapper helpers.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/StreetNameMatcher.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/StreetNameCache.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/MunicipalityMatcher.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/CachedLatestQueriesDecorator.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/AddressMatchQueryComponents.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/AddressMatchMatchingAlgorithm.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/AddressMatcher.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/Matching/AddressMatchBuilder.cs Moves matching components out of v2-specific namespace.
src/AddressRegistry.Api.Oslo/AddressMatch/AddressMatchContextV2.cs Rehomes AddressMatch context namespace.
src/AddressRegistry.Api.Oslo/Address/V3/Search/AddressSearchV3Response.cs Adds v3 search response contract and examples.
src/AddressRegistry.Api.Oslo/Address/V3/Search/AddressSearchRequest.cs Adds v3 search request/filter contract.
src/AddressRegistry.Api.Oslo/Address/V3/Search/AddressSearchHandler.cs Adds v3 search handler implementation.
src/AddressRegistry.Api.Oslo/Address/V3/List/AddressListOsloV3Response.cs Adds v3 list response contract and examples.
src/AddressRegistry.Api.Oslo/Address/V3/List/AddressListOsloRequest.cs Adds v3 list request contract.
src/AddressRegistry.Api.Oslo/Address/V3/List/AddressListOsloElasticHandler.cs Adds v3 list handler implementation.
src/AddressRegistry.Api.Oslo/Address/V3/List/AddressFilter.cs Adds v3 list filter model.
src/AddressRegistry.Api.Oslo/Address/V3/Detail/AdresIsDeelVan.cs Adds v3 “isDeelVan” reference type.
src/AddressRegistry.Api.Oslo/Address/V3/Detail/AddressDetailOsloRequest.cs Adds v3 detail request contract.
src/AddressRegistry.Api.Oslo/Address/V3/Detail/AddressDetailOsloHandler.cs Adds v3 detail handler implementation.
src/AddressRegistry.Api.Oslo/Address/V3/Count/TotalCountOsloResponseExample.cs Adds v3 total-count example provider.
src/AddressRegistry.Api.Oslo/Address/V3/Count/AddressCountRequest.cs Adds v3 count request contract.
src/AddressRegistry.Api.Oslo/Address/V3/Count/AddressCountElasticHandler.cs Adds v3 count handler implementation.
src/AddressRegistry.Api.Oslo/Address/V3/ChangeFeed/AddressFeedResultExample.cs Moves change-feed example to v3 and binds v3 options.
src/AddressRegistry.Api.Oslo/Address/V3/ChangeFeed/AddressFeedFilter.cs Moves change-feed filter to v3 namespace.
src/AddressRegistry.Api.Oslo/Address/V3/AddressPosition.cs Adds v3 position/geometry response model.
src/AddressRegistry.Api.Oslo/Address/V3/AddressMapper.cs Adds v3 address mapping utilities.
src/AddressRegistry.Api.Oslo/Address/V3/AddressController.cs Introduces Address v3 controller (and removes v2 sync from this controller).
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationResponse.cs Moves v2 sync types into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationQuery.cs Moves v2 sync query into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationPersistentLocalIdQuery.cs Moves v2 sync query into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationHandler.cs Updates v2 sync handler options type.
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationByPersistentLocalIdHandler.cs Updates v2 sync handler options type.
src/AddressRegistry.Api.Oslo/Address/V2/Sync/AddressSyndicationBaseHandler.cs Updates v2 sync base handler to read V2:Syndication config section.
src/AddressRegistry.Api.Oslo/Address/V2/Search/AddressSearchResponse.cs Moves v2 search response into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/Search/AddressSearchRequest.cs Moves v2 search request into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Search/AddressSearchHandler.cs Moves v2 search handler into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/List/AddressListOsloResponse.cs Moves v2 list response into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/List/AddressListOsloRequest.cs Moves v2 list request into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/List/AddressListOsloElasticHandler.cs Moves v2 list handler into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/List/AddressFilter.cs Moves v2 list filter into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Detail/AdresDetailHuisnummerObject.cs Moves v2 detail model into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Detail/AddressDetailOsloResponse.cs Moves v2 detail response into versioned namespace and updates options type.
src/AddressRegistry.Api.Oslo/Address/V2/Detail/AddressDetailOsloRequest.cs Moves v2 detail request into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Detail/AddressDetailOsloHandlerV2.cs Updates v2 detail handler options type.
src/AddressRegistry.Api.Oslo/Address/V2/Count/TotalCountOsloResponseExample.cs Moves v2 count example into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Count/AddressCountRequest.cs Moves v2 count request into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/Count/AddressCountElasticHandler.cs Moves v2 count handler into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/AddressPosition.cs Moves v2 address position model into versioned namespace.
src/AddressRegistry.Api.Oslo/Address/V2/AddressMapper.cs Moves v2 address mapper into versioned namespace and removes some helpers.
src/AddressRegistry.Api.Oslo/Address/V2/AddressController.cs Adds explicit Address v2 controller (including v2 sync endpoint).
src/AddressRegistry.Api.BackOffice.Handlers.Lambda/packages.lock.json Bumps GrAr dependency versions in backoffice lambda lockfile.
src/AddressRegistry.Api.BackOffice.Abstractions/packages.lock.json Bumps GrAr dependency versions in backoffice abstractions lockfile.
docs/AddressRegistry.Structurizr/packages.lock.json Bumps GrAr dependency versions in docs tooling lockfile.
Directory.Packages.props Updates centralized GrAr package versions to 25.4.2.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +17 to +18
using GeometryExtensions = Be.Vlaanderen.Basisregisters.GrAr.Common.NetTopology.GeometryExtensions;
using WKBReaderFactory = WKBReaderFactory;
Comment on lines +36 to +41
volledigAdres.Add(streetNameName.Spelling,
addressListDocument.HouseNumber,
addressListDocument.BoxNumber ?? string.Empty,
addressListDocument.PostalInfo!.PostalCode,
municipalityName?.Spelling ?? addressListDocument.Municipality.Names.First().Spelling,
MapElasticLanguageToTaal(language));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants