Apache Pekko HTTP Scala
ตัวอย่างโค้ด Scala สำหรับ Apache Pekko HTTP ที่ตอบคำขอไปยัง /pixel.gif ด้วย GIF ว่าง ซึ่งถอดรหัสเพียงครั้งเดียวตอนเริ่มทำงาน
Apache Pekko HTTP Scala
import org.apache.pekko.actor.typed.ActorSystem
import org.apache.pekko.actor.typed.scaladsl.Behaviors
import org.apache.pekko.http.scaladsl.Http
import org.apache.pekko.http.scaladsl.model.{HttpEntity, MediaTypes}
import org.apache.pekko.http.scaladsl.model.headers.`Cache-Control`
import org.apache.pekko.http.scaladsl.model.headers.CacheDirectives.`no-store`
import org.apache.pekko.http.scaladsl.server.Directives.*
@main def pixelServer(): Unit =
given ActorSystem[Nothing] = ActorSystem(Behaviors.empty, "pixel")
val gif = HttpEntity(MediaTypes.`image/gif`, java.util.Base64.getDecoder.decode("R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="))
val route =
path(separateOnSlashes("/pixel.gif".stripPrefix("/"))) {
get {
respondWithHeader(`Cache-Control`(`no-store`)) {
complete(gif)
}
}
}
Http().newServerAt("0.0.0.0", 8080).bind(route)
เรารันตัวอย่างโค้ดนี้และเทียบไบต์ที่ได้กลับมาแล้ว
ตรวจสอบ
curl -sI http://localhost:8080/pixel.gif
เว็บไซต์ทางการ: Apache Pekko HTTP