Akka:Http:entity
Example
package common
final case class Item(name: String, id: Long)
// ...
val route =
path("hello") {
get {
complete(HttpEntity(
ContentTypes.`text/html(UTF-8)`,
"<h1>Say hello to akka-http</h1>"))
}
} ~
path("randomitem") {
get {
// will marshal Item to JSON
complete(Item("thing", 42))
}
} ~
path("saveitem") {
post {
// will unmarshal JSON to Item
entity(as[Item]) { item =>
println(s"Server saw Item : $item")
complete(item)
}
}
}
거기에 몇 가지 일반적인 라우팅 DSL bits 와 bobs 이 있다는 것을 알 수 있다 :
- path : which satisfies the route name part of the route
- get : which tells us that we should go further into the route matching if it’s a GET http request and it matched the path route DSL part
- post: which tells us that we should go further into the route matching if it’s a POST http request and it matched the path route DSL part
- complete : This is the final result from the route
What Directives Do?
지시문은 다음 중 하나 이상을 수행 할 수 있다.
- Transform the incoming RequestContext before passing it on to its inner route (i.e. modify the request)
- Filter the RequestContext according to some logic, i.e. only pass on certain requests and reject others
- Extract values from the RequestContext and make them available to its inner route as “extractions”
- Chain some logic into the RouteResult future transformation chain (i.e. modify the response or rejection)
- Complete the request
자세한 내용은 Akka:Http:Directives 항목 참조.