1
我想验证我的API的完整功能的结果,当它无法将字符串转换为Json类型时,Response会生成一个null,我不希望它生成null但说:“没有发现”,这是我的路线:如何在AKKA-HTTP中验证完成
val route = pathPrefix("auth") {
path("signIn") {
pathEndOrSingleSlash {
post {
entity(as[LoginPassword]) { loginPassword =>
val a = signIn(loginPassword.login, loginPassword.password).map(_.asJson)
if(signIn(loginPassword.login, loginPassword.password).map(_.asJson) == null){
complete(states.map(_.asJson))
}else {
def getObject : Option[Any] = Option(signIn(loginPassword.login, loginPassword.password).map(_.asJson))
val ahh = signIn(loginPassword.login, loginPassword.password).map(_.asJson)
if(getObject.isEmpty || getObject == null){ ///////NOT FOUND
complete("Not Found")
}else {
complete(signIn(loginPassword.login, loginPassword.password).map(_.asJson)
}
//complete(signIn(loginPassword.login, loginPassword.password).map(_.asJson))
}
}
}
}
}
这是不行的,因为它总是进入其他的条件中,响应一个JSON时,得到的BD和当值null不会。
功能登录
def signIn(login: String, password: String): Future[Option[TokenEntity]] = {
db.run(users.filter(u => u.username === login).result).flatMap { users =>
users.find(user => Bcrypt.validate(password, user.password)) match {
case Some(user) => db.run(tokens.filter(_.userId === user.id).result.headOption).flatMap {
case Some(token) => Future.successful(Some(token))
case None => createToken(user).map(token => Some(token))
}
case None => Future.successful(None)
}
}
}
我使用JSON库是:Json
一些帮助?谢谢。
这是一个非常困难的问题,不知道signIn'的'签名来回答以及您正在使用的JSON库。这个'国家'的价值也来自无处不在。另外,你为什么多次调用'signIn'? – acjay