Skip to content

Add mounted API route aliases - #178

Merged
eviltester merged 1 commit into
masterfrom
codex/176-mounted-api-route-aliases
Aug 26, 2026
Merged

Add mounted API route aliases#178
eviltester merged 1 commit into
masterfrom
codex/176-mounted-api-route-aliases

Conversation

@eviltester

Copy link
Copy Markdown
Owner

Summary

  • add named API mounts that expose canonical Thingifier routes under public prefixes
  • resolve mounted requests back to canonical internal paths at runtime
  • rewrite relative Location headers to the active mount when configured
  • expose mount/public/internal path context to validators and callbacks
  • project mounted route documentation and OpenAPI operation text to public paths

Verification

  • mvn clean verify
  • mvn install -DskipTests

Closes #176
Closes #177

Expose canonical Thingifier routes through named public mounts, including mount-aware runtime routing, Location header rewriting, documentation projection, and callback/validator path context.

Also project generated mounted operation text to public paths for issue 177.
Copilot AI lite review requested due to automatic review settings August 26, 2026 12:30

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 327a1f54b1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +441 to +442
if (!hasDocumentedMounts()) {
return routingDefinition;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Keep hidden mounts in the server routing definitions

When every configured mount uses hideFromDocs(), this returns the unmounted canonical definitions, and when visible mounts coexist, the loop similarly omits each hidden mount. ThingifierHttpApiRoutings registers server endpoints from these same generated definitions, so a hidden mount such as /legacy is not callable over the actual HTTP server despite hideFromDocs() promising to affect documentation only; retain projected routes with hiddenFromDocumentation metadata so Swagger can omit them without dropping server registration.

Useful? React with 👍 / 👎.

Comment on lines +181 to +182
@Test
void mountedFixedRouteUsesInternalTargetAndCallbackSeesPublicPath() {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Split routing and callback-context behaviors into separate tests

This test combines fixed-route resolution and response behavior with the independent callback mount-path contract, as reflected by the And in its name and the separate status/body, path, mount, and identifier assertions. Split these behaviors so a routing failure does not obscure which callback-context guarantee broke.

AGENTS.md reference: AGENTS.md:L6-L15

Useful? React with 👍 / 👎.

@eviltester
eviltester merged commit 781c4f3 into master Aug 26, 2026
3 checks passed
@eviltester
eviltester deleted the codex/176-mounted-api-route-aliases branch August 26, 2026 12:34
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.

Mounted route documentation should project generated operation text to the public path Mounted API Route Aliases

2 participants