4. Server API

Akka HTTP also provides an embedded, Reactive-Streams-based, fully asynchronous HTTP/1.1 server implemented on top of Streams.

It supports the following features:

The server-side components of Akka HTTP are split into two layers:

High-level Server-Side API
Higher-level functionality in the akka-http module which offers a very flexible “Routing DSL” for elegantly defining RESTful web services as well as functionality of typical web servers or frameworks, like deconstruction of URIs, content negotiation or static content serving.
Core Server API
The basic low-level server implementation in the akka-http-core module.

Depending on your needs you can either use the low-level API directly or rely on the high-level Routing DSL which can make the definition of more complex service logic much easier. You can also interact with different API levels at the same time and, independently of which API level you choose Akka HTTP will happily serve many thousand concurrent connections to a single or many clients.

Note

It is recommended to read the Implications of the streaming nature of Request/Response Entities section, as it explains the underlying full-stack streaming concepts, which may be unexpected when coming from a background with non-“streaming first” HTTP Servers.

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.