Scala Lift: Как обернуть ответы REST в корневой элемент XML? - PullRequest
0 голосов
/ 28 октября 2010

Я делаю проект по тестированию Scala и Lift в моей компании, в настоящее время я реализую REST API, который использует XML.Я видел, что есть XMLApiHelper, который предлагает метод createTag, который инкапсулирует ответы в корневой элемент.

Итак, я сделал это

object RestAPI extends RestHelper with XMLApiHelper {
  serve {
    …
  }
  …
  def createTag(in: NodeSeq): Elem = <root>{in}</root>
}

Это не похоже на работу.Я что-то упустил?

С уважением, raichoo

1 Ответ

2 голосов
/ 29 октября 2010

RestHelper и XMLApiHelper не предназначены для совместной работы. Они предназначены для решения двух разных видов проблем.

XMLApiHelper определяет неявное преобразование между типами Scala XML-узла и классом LiftResponse. RestHelper определяет механизм, который будет возвращать клиенту либо XML, либо JSON, в зависимости от того, что он запросил. RestHelper связан с процессом диспетчеризации на более низком уровне, чем XMLApiHelper, поэтому неявное в XMLApiHelper никогда не вызывается.

Если вы хотите вернуть XML в метод HTTP, используйте XMLApiHelper. Если вы хотите, чтобы гибкость возвращала XML или JSON в зависимости от того, как вызывается метод HTTP, используйте RestHelper.

...