1
나는 다음과 같은 akka HTTP에서 쿼리 PARAM을 언 마샬링 싶습니다akka http - LocalDate로 쿼리 매개 변수를 언 마샬링하는 방법은 무엇입니까?
name=jim&age=30&dob=11-20-1990
import java.time.LocalDate
import akka.http.scaladsl.marshalling.ToResponseMarshallable
import akka.http.scaladsl.server._
import akka.http.scaladsl.model.StatusCodes
import akka.http.scaladsl.model.headers.RawHeader
import akka.http.scaladsl.server.Directives.{complete, _}
...
parameters(('name.as[String].?, 'age.as[Int].?, 'dob.as[String].?)) { (name, age, dob) =>
내가 문자열 또는 정수 (int)로 확인 모든 비 직렬화 할 수 있지만, 내가하고있는 java.util과 생년월일을 unmarsall 싶습니다. LOCALDATE,이 같은 : 그러나
parameters(('name.as[String].?, 'age.as[Int].?, 'dob.as[LocalDate].?)) { (name, age, dob) =>
, 나는 다음과 같은 오류 받고 있어요 :
[error] routes/Router.scala:141: type mismatch;
[error] found : (akka.http.scaladsl.common.NameOptionReceptacle[Int], akka.http.scaladsl.common.NameOptionReceptacle[Int], akka.http.scaladsl.common.NameOptionReceptacle[java.time.LocalDate])
[error] required: akka.http.scaladsl.server.directives.ParameterDirectives.ParamMagnet
[error] parameters(('$top.as[Int].?, '$skip.as[Int].?, 'modified_date.as[LocalDate].?)) { (top, skip, modifiedDate) =>
내가 범위에서 사용자 지정 LOCALDATE의 Unmarshaller에 추가 시도를하지만, 난 여전히 뻥 g 같은 오류 :
implicit val LocalDateUnmarshaller = new JsonReader[LocalDate] {
def read(value: JsValue) = value match {
case JsString(x) => LocalDate.parse(x)
case x => throw new RuntimeException(s"Unexpected type %s on parsing of LocalDate type".format(x.getClass.getName))
}
}
감사합니다,이 중복이었다, 나는이 검색되었을 때 그 문제를 발견하지 않았지만 – Rory