xml과 json에서 항목을 제공하도록 RestHelper를 확장하는 클래스가 있습니다. 현재, 나는 XML로 엔티티를 반환하는 "역할"-method을 구현하고있다 :Scala + Lift + REST - serveJx로 배열 반환
object Rest extends RestHelper {
serve {
case "supplier" :: "findAll" :: _ XmlGet _
=> supplierListToXml(Supplier.findAll)
}
def supplierListToXml(suppliers : List[Supplier]) = {
<suppliers>{suppliers.mapConserve(f=> f.toXml)}</suppliers>
}
}
내가 사용하여 수락 헤더에 따라, JSON의 aswell과 같은 항목을 제공 할 serveJx-method (http://www.assembla.com/wiki/show/liftweb/REST_Web_Services에서 설명).
클래스 공급자는 Convertable을 구현하고, 나는 나머지 클래스 내에서 변환 메소드를 구현 :
object RestApi extends RestHelper {
implicit def cvt: JxCvtPF[Convertable] = {
case (JsonSelect, c, _) => c.toJson
case (XmlSelect, c, _) => c.toXml
}
serveJx {
case Get("2.0" :: "supplier" :: "head" :: _,_)
=> Full(Supplier.findAll.head)
}
}
을 ... 그리고 이것은 내가 단일 공급 업체를 제공 할 때, 찾을 작동합니다. 그러나 공급 업체 목록 (목록 [Supplier])을 반환하려면 변환 방법을 적용 할 수 없습니다.
case Get("2.0" :: "supplier" :: "findAll" :: _,_)
=> Full(Supplier.findAll.toList)
... 내가 컴파일 오류를 얻을 :
"could not find implicit value for parameter cvt:com.mycompany.api.RestApi.JxCvtPF[ScalaObject]"
누군가가 나에게로 convertables의 목록을 변환 할 수 있도록 CVT-방법을 수정하는 방법의 예를 적어주세요 수 LiftResponse?
건배! /J