Skip to content

Make route group prefix optional#280

Merged
viceroypenguin merged 2 commits into
ImmediatePlatform:mainfrom
CoryCharlton:feature/optional-route-group-prefix
May 26, 2026
Merged

Make route group prefix optional#280
viceroypenguin merged 2 commits into
ImmediatePlatform:mainfrom
CoryCharlton:feature/optional-route-group-prefix

Conversation

@CoryCharlton
Copy link
Copy Markdown
Contributor

Summary

Makes the prefix argument of the generated route-group registration method optional.

When a handler is decorated with [RouteGroup("Name")], the generator emits:

public static RouteGroupBuilder Map{Assembly}{Name}Endpoints(
    this IEndpointRouteBuilder app,
    [StringSyntax("Route")] string prefix)

Previously prefix was required for named groups — only the default assembly-level group (Map{Assembly}Endpoints) defaulted it to "". This forces callers to pass a prefix even when they'd rather put the full route on each handler, e.g.:

[Handler]
[MapGet("/monitor/assemblies")]
[RouteGroup("Monitor")]
internal static partial class AssembliesEndpoint { /* ... */ }

// today you must write:
app.MapApplicationMonitorEndpoints(string.Empty);
// now you can simply write:
app.MapApplicationMonitorEndpoints();

This change always defaults prefix to "" so the argument is optional for named groups too.

Backward compatibility

Fully backward-compatible — callers that pass a prefix continue to work unchanged; the prefix simply becomes optional.

Changes

  • src/Immediate.Apis.Generators/Templates/Routes.sbntxt — always default prefix to "".
  • Regenerated the affected RouteGroupTests verified snapshots.
  • readme.md — note that the prefix argument is optional.

The generated Map{Assembly}{Group}Endpoints method previously required a prefix argument for named route groups; only the default assembly-level group defaulted it to an empty string. Always default prefix to "" so callers can omit it and specify the full route on each handler. Backward-compatible: callers that pass a prefix are unaffected.
@CoryCharlton CoryCharlton force-pushed the feature/optional-route-group-prefix branch from eb5a344 to 7bc1ae9 Compare May 25, 2026 21:42
Comment thread readme.md Outdated
Copy link
Copy Markdown

Copilot AI left a comment

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 updates the route-group registration method generated by Immediate.Apis so that the prefix parameter is optional for named route groups (not just the default assembly-level group), enabling callers to omit the prefix and specify full routes per-handler instead.

Changes:

  • Updated the routes template to always emit prefix with a default value of "".
  • Updated RouteGroupTests verified snapshots to reflect the new optional parameter for named groups.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
tests/Immediate.Apis.Tests/GeneratorTests/RouteGroupTests.ValidRouteGroupTest_groupName=Test123Group#RouteGroupBuilder.Test123Group.g.verified.cs Snapshot updated: named group route builder now has prefix = "".
tests/Immediate.Apis.Tests/GeneratorTests/RouteGroupTests.ValidRouteGroupTest_groupName=Test_Group#RouteGroupBuilder.Test_Group.g.verified.cs Snapshot updated: named group route builder now has prefix = "".
tests/Immediate.Apis.Tests/GeneratorTests/RouteGroupTests.ValidRouteGroupTest_groupName=123TestGroup#RouteGroupBuilder.123TestGroup.g.verified.cs Snapshot updated: named group route builder now has prefix = "".
tests/Immediate.Apis.Tests/GeneratorTests/RouteGroupTests.ValidRouteGroupTest_groupName=_TestGroup#RouteGroupBuilder._TestGroup.g.verified.cs Snapshot updated: named group route builder now has prefix = "".
src/Immediate.Apis.Generators/Templates/Routes.sbntxt Template updated to always default prefix to "" (making it optional for named groups too).

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

@codecov
Copy link
Copy Markdown

codecov Bot commented May 26, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@viceroypenguin viceroypenguin merged commit e6ec111 into ImmediatePlatform:main May 26, 2026
2 checks passed
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.

3 participants