如何崩溃喷雾指令

时间:2016-01-22 10:31:36

标签: spray spray-routing

如何尽可能地摧毁这些指令?

我能够将三个指令折叠到mainHeader中,但是如何包含authenticate和responseWithMediaType呢?

val mainHeaders = cors & headerValueByName("Access_Token") & headerValueByName("Tenant_Name")

override def getLayer = path("api" / Segment / "model" / "layers") { modeledSystemName =>
    mainHeaders { (accessToken, tenantName) =>
      authenticate(validate(accessToken)) { authInfo =>
        respondWithMediaType(`application/json`) {
          get {
            onComplete(service.getlayers(modeledSystemName, tenantName)) {
              case Success(layers) => complete(layers)
              //case Success(None) => complete(NotFound, "Release version not found")
              case Failure(ex) => complete(InternalServerError, s"An error occurred: ${ex.getMessage}")
            }
          }
        }
      }
    }
  }

1 个答案:

答案 0 :(得分:2)

喷雾路线非常易于组合,因此您可以随心所欲。例如,我会写这样的路线:

authWithHeader

让我解释一下这段代码。首先,我创建了指令flatMap,该指令读取标头值,然后使用此值进行身份验证。它非常简单,所有魔法都由authenticatedJsonRoute完成。

然后,我创建了&,它只是其他简单指令的组合。使用authenticatedJsonRoute运算符完成组合魔术(我将其称为"然后在此上下文中使用"并且这些指令将按顺序执行。

最后,我在完整的路线getLayer中使用了我的编写指令$result=mysqli_query($con,"SELECT req_date,Name,Mobile,Email FROM pend WHERE Mobile LIKE '" . mysql_escape_string($_POST['Mobile']) . "'; ");