You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A useful trick we learned in grpc-swift is that it can be handy to allow users to insert a "debug handler" (or several) into each channel pipeline. This should usually be given the option to insert itself anywhere in the pipeline (meaning we should probably name our handlers), and can enable all kinds of useful observability and testing. We may need to be careful for HTTP/2, and we should consider @glbrntt's grpc experience here.
The text was updated successfully, but these errors were encountered:
Motivation:
As requested in swift-server#596, it can be handy to have a lower-level access to channels (HTTP/1 connection, HTTP/2 connection, or HTTP/2 stream) to enable a more fine-grained interaction for, say, observability, testing, etc.
Modifications:
- Add 3 new properties (`http1_1ConnectionDebugInitializer`, `http2ConnectionDebugInitializer` and `http2StreamChannelDebugInitializer`) to `HTTPClient.Configuration` with access to the respective channels. These properties are of `Optional` type `@Sendable (Channel) -> EventLoopFuture<Void>` and are called when creating a connection/stream.
Result:
Provides APIs for a lower-level access to channels.
A useful trick we learned in grpc-swift is that it can be handy to allow users to insert a "debug handler" (or several) into each channel pipeline. This should usually be given the option to insert itself anywhere in the pipeline (meaning we should probably name our handlers), and can enable all kinds of useful observability and testing. We may need to be careful for HTTP/2, and we should consider @glbrntt's grpc experience here.
The text was updated successfully, but these errors were encountered: