2017-08-14 2 views

Répondre

1

Je suppose que vous faites référence à la méthode ~ sur pulvérisation/HTTP Akka. Ce qu'il fait est la chaîne deux autres routes:

/** 
* Returns a Route that chains two Routes. If the first Route rejects the request the second route is given a 
* chance to act upon the request. 
*/ 
def ~(other: Route): Route = { ctx ⇒ 
    route { 
    ctx.withRejectionHandling { rejections ⇒ 
     other(ctx.withRejectionsMapped(rejections ++ _)) 
    } 
    } 

En pulvérisation, un Route est un alias de type pour une fonction prise dans un RequestContext et retour Unit:

type Route = RequestContext ⇒ Unit 

Et Akka-HTTP, il renvoie un Future[RouteResult]:

type Route = RequestContext => Future[RouteResult]