Как обслуживать XML и JSON с помощью Play!2,0 - PullRequest
6 голосов
/ 04 января 2012

Я занимаюсь созданием простого приложения, чтобы промочить ноги с помощью Play! 2,0. Я хотел бы быть в состоянии обслуживать свои ресурсы как XML (на самом деле подача ATOM) и JSON. Я знаю, как сделать это в 1.2.x, но этот способ, похоже, не работает с 2.0. кто нибудь знает как это сделать? Примеры будут высоко оценены.

1 Ответ

11 голосов
/ 04 января 2012

Для JSON я бы порекомендовал вам посмотреть на этот вопрос Как отобразить ответ JSON в Play framework v2.0 (последняя сборка из GIT)

XML намного проще, так как вы можете просто вызвать return и получить такой код:

Ok(Xml(xmlString))

Но более чистый способ использования этой функциональности - написать собственный шаблон под views/xml, например, mdo.scala.xml может быть

.
@(mdo:MyDomainObject)
<?xml version="1.0" encoding="utf-8"?>
<MyDomainObject>
  <name>@mdo.name</name>
  <desc>@mdo.desc</desc>
  <kws>
  @mdo.keywords map { k=>
    <kw>k</kw>
  }
  </kws>
</MyDomainObject>

Тогда в вашем контроллере

def c = Action {
  val o = MyDomainObject("mine", "for example", List("stack", "over", "flow"))
  Ok(views.xml.mdo(o))
}

В противном случае вы можете использовать функцию toXml, аналогичную toJson, с помощью библиотеки маршалинга

...