Class HttpServerBluePrint
HTTP pipeline setup (without the underlying SSL/TLS (un)wrapping and the websocket switch):
+----------+ +-------------+ +-------------+ +-----------+ HttpRequest | | Http- | request- | Request- | | Request- | request- | ByteString | <------------+ <----------+ Preparation <----------+ <-------------+ Parsing <----------- | | | Request | | Output | | Output | | | | | +-------------+ | | +-----------+ | | | | | | Application- | One2One- | | controller- | | Flow | Bidi | | Stage | | | | | | | | | | | +-----------+ | HttpResponse | | HttpResponse | | Response- | renderer- | ByteString v -------------> +-----------------------------------> +-------------> Pipeline +----------> | | | | Rendering- | | +----------+ +-------------+ Context +-----------+
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic final classTwo state stage, either transforms an incoming RequestOutput into a HttpRequest with strict entity and then pushes that (the "idle" inHandler) or creates a HttpRequest with a streamed entity and switch to a state which will push incoming chunks into the streaming entity until end of request is reached (the StreamedEntityCreator case in create entity).static class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, org.apache.pekko.stream.TLSProtocol.SslTlsInbound, HttpRequest, org.apache.pekko.NotUsed> apply(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext, ParserOutput.RequestOutput, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> controller(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput, org.apache.pekko.NotUsed> parsing(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection) static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput, org.apache.pekko.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> parsingRendering(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput, org.apache.pekko.NotUsed> rendering(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, ParserOutput.RequestOutput, HttpRequest, org.apache.pekko.NotUsed> requestPreparation(ServerSettings settings) Wraps the HTTP/1.1 request/response bidi flow.static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, HttpRequest, HttpRequest, org.apache.pekko.NotUsed> requestTimeoutSupport(scala.concurrent.duration.Duration timeout, org.apache.pekko.event.LoggingAdapter log) static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, org.apache.pekko.stream.TLSProtocol.SslTlsInbound, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, HttpRequest, HttpRequest, org.apache.pekko.NotUsed> userHandlerGuard(int pipeliningLimit) Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimitresponses outstandingstatic org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,org.apache.pekko.util.ByteString, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> websocketSupport(ServerSettings settings, org.apache.pekko.event.LoggingAdapter log)
-
Constructor Details
-
HttpServerBluePrint
public HttpServerBluePrint()
-
-
Method Details
-
apply
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, applyorg.apache.pekko.stream.TLSProtocol.SslTlsInbound, HttpRequest, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
tlsSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<org.apache.pekko.util.ByteString,org.apache.pekko.stream.TLSProtocol.SslTlsOutbound, tlsSupport()org.apache.pekko.stream.TLSProtocol.SslTlsInbound, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> -
websocketSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingOutput,org.apache.pekko.util.ByteString, websocketSupportorg.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.stream.TLSProtocol.SessionBytes, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) -
parsingRendering
public static org.apache.pekko.stream.scaladsl.BidiFlow<ResponseRenderingContext,ResponseRenderingOutput, parsingRenderingorg.apache.pekko.stream.TLSProtocol.SessionBytes, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection, DateHeaderRendering dateHeaderRendering) -
controller
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,ResponseRenderingContext, controllerParserOutput.RequestOutput, ParserOutput.RequestOutput, org.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log) -
requestPreparation
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestPreparationParserOutput.RequestOutput, HttpRequest, org.apache.pekko.NotUsed> (ServerSettings settings) Wraps the HTTP/1.1 request/response bidi flow.Opentelemetry Java Instrumentation relies on this method so avoid changing it. The agent wraps the returned
BidiFlowto start and end server spans, and matches on the method name and on theBidiFlowreturn type. See https://github.com/apache/pekko-http/issues/1241- Parameters:
settings- (undocumented)- Returns:
- (undocumented)
-
requestTimeoutSupport
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, requestTimeoutSupportHttpRequest, HttpRequest, org.apache.pekko.NotUsed> (scala.concurrent.duration.Duration timeout, org.apache.pekko.event.LoggingAdapter log) -
parsing
public static org.apache.pekko.stream.scaladsl.Flow<org.apache.pekko.stream.TLSProtocol.SessionBytes,ParserOutput.RequestOutput, parsingorg.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, boolean isSecureConnection) -
rendering
public static org.apache.pekko.stream.scaladsl.Flow<ResponseRenderingContext,ResponseRenderingOutput, renderingorg.apache.pekko.NotUsed> (ServerSettings settings, org.apache.pekko.event.LoggingAdapter log, DateHeaderRendering dateHeaderRendering) -
userHandlerGuard
public static org.apache.pekko.stream.scaladsl.BidiFlow<HttpResponse,HttpResponse, userHandlerGuardHttpRequest, HttpRequest, org.apache.pekko.NotUsed> (int pipeliningLimit) Ensures that the user handler - produces exactly one response per request - has not more thanpipeliningLimitresponses outstanding- Parameters:
pipeliningLimit- (undocumented)- Returns:
- (undocumented)
-