Как мое приложение Play 2 может реагировать на разные заголовки «Accept» от клиента?

В Rails я мог сделать что-то похожее на следующее:

respond_to do |format|
  format.xml { ... }
  format.json { ... }
end

и соответствующий блок будет выполняться на основе того, что клиент предоставил в Принять заголовок.

Как сделать то же самое в Play 2.0 (Scala)?

Я бы хотел сделать что-то примерно такое:

try {
  Resources.delete(id)
  Ok("done")
} 
catch { 
  case e: ClientReportableException =>
    ?? match { 
      case "application/xml" => Ok(<error>{e.message}</error>)
      case "application/json" => Ok(...)
  }
}

Существует ли для этого идиома Play, или я просто получаю значение заголовка Accept из запроса?

10
задан Bill 16 June 2012 в 04:14
поделиться