刚学Scala,其实已经蓄谋已久,看了好些资料,奈何scala太多东西,而且网上资料并不算多,官方英文资料啃得也是很难受,主要是Scala不熟悉,有时候看不懂代码。对于刚学一门语言的新手来说,写一个小Demo可以帮助理解和记忆,这里就以Scala比较流行的框架Akka Http来写一个简单的Web。
前言和目标
Akka Http并不是专门用来搭建Web项目,但是用来搭几个简单的接口和页面,用它也是足够的并且不会太麻烦。Akka Htpp基于Akka Actor,所以需要对Actor模型有一点了解(我也是粗略了解而已),但只要知道Actor模型的工作机制就好了。这个demo用sbt构建,所以对sbt或者maven之类的有一点了解,当然还需要Scala一点点语法基础。
目标:
- 首先完成一个hello接口,访问就返回一个文本hello
- 在上面基础上完成一个JSON接口
- 完成有业务逻辑的JSON接口
- Web服务支持静态资源的读取,可以访问html文件
- 把应用部署到服务器
搭起一个Server
创建一个sbt项目,然后在build.sbt
里加上下面的依赖
val akkaHttpV = "10.1.1"
val akkaV = "2.5.12"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % akkaV,
"com.typesafe.akka" %% "akka-stream" % akkaV,
"com.typesafe.akka" %% "akka-http" % akkaHttpV,
"com.typesafe.akka" %% "akka-http-spray-json" % akkaHttpV,
)
创建一个Server Object,为了方便,直接继承HttpApp,复杂方式可以看