Skip to content

Introduce gRPC route helpers - #8

Merged
samuel-williams-shopify merged 1 commit into
mainfrom
call-routing
Aug 16, 2026
Merged

Introduce gRPC route helpers#8
samuel-williams-shopify merged 1 commit into
mainfrom
call-routing

Conversation

@samuel-williams-shopify

@samuel-williams-shopify samuel-williams-shopify commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Introduce Protocol::GRPC::Route as the namespace for parsing and building gRPC request paths.

  • Route.parse(path) returns the service and method names.
  • Route.build(service_name, method_name) returns the canonical request path.
  • Service and method names must follow protobuf identifier syntax; components are not URL-encoded or decoded.
  • Query, fragment, path, and percent-encoding delimiters are rejected as invalid gRPC routes.
  • Interface#path uses Route.build.
  • Deprecated Methods.build_path and Methods.parse_path remain as compatibility wrappers.
  • Documentation and server routing examples use the new API.

This lets async-grpc route requests without constructing a partially initialized Call.

Validation:

  • bundle exec bake test (232 tests, 420 assertions)
  • bundle exec rubocop (58 files, no offenses)
  • bundle exec bake decode:index:coverage lib (104/104 public definitions documented)

@samuel-williams-shopify samuel-williams-shopify changed the title Expose call routing information Introduce gRPC route abstraction Aug 16, 2026
@samuel-williams-shopify samuel-williams-shopify changed the title Introduce gRPC route abstraction Introduce gRPC route helpers Aug 16, 2026
@samuel-williams-shopify
samuel-williams-shopify force-pushed the call-routing branch 2 times, most recently from aea594d to 016ef41 Compare August 16, 2026 23:19
@samuel-williams-shopify
samuel-williams-shopify merged commit 3bb0e6c into main Aug 16, 2026
40 checks passed
@samuel-williams-shopify
samuel-williams-shopify deleted the call-routing branch August 16, 2026 23:26
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.

1 participant