Akka HTTP 快速入门

因为业务需求,需要对Akka HTTP进行快速学习

什么是Akka HTTP?

Akka HTTP 模块组在 akka-actor 和 akka-stream 的基础上实现了全HTTP栈( 服务器- 及客户- 端 )的功能

应用范围?

不需要前端页面,只需要通过REST/HTTP 提供接口连接的服务。

HTTP服务端的路由DSL?
路由DSL来描述HTTP"路由”和其相关处理
每个路由可以是一个或几个不同的Directive层级组合而成,每个路由则专注处理一个类型的请求。
通过 路由DSL 生成的 Route 对象 必须进行对应的“绑定”才能开始处理不同

HTTP Routes 是什么?
Route 是Routing DSL的核心概念。

type Route = RequestContext => Future[routeResult]

requestContext.complete(...)
by calling complete a given response is sent to the client as reaction to the request. I
返回对响应的请求

The Routing Tree

val route =
  a {
    b {
      c {
        ... // route 1
      } ~
      d {
        ... // route 2
      } ~
      ... // route 3
    } ~
    e {
      ... // route 4
    }
  }

不同层级下route调用情况如下
Route 1 will only be reached if directives a, b and c all let the request pass through.
Route 2 will run if a and b pass, c rejects and d passes.
Route 3 will run if a and b pass, but c and d reject.

你可能感兴趣的:(Akka HTTP 快速入门)