Сообщить об ошибках для разных типов контента в Синатре - PullRequest
1 голос
/ 06 января 2012

У меня есть простое приложение Sinatra с обычными и JSON API частями. Я хотел бы создать блок ошибок:

error do
  # ...
end

, который будет возвращать JSON в формате {: error => «некоторый текст»} в случае, если клиент отправил заголовок Accept , установленный на application / json , и останется поведением Sinatra по умолчанию для всех остальных случаев.

1 Ответ

1 голос
/ 07 января 2012

Вы можете прочитать заголовок в блоке ошибок как аргумент условного выражения и вспомогательный метод для выбора вывода:

например,

def content_to( output, type=nil )
  case type
    when "application/json"
      #...
    else
      output
  end...

error do
  content_to( "Whoops!", header["Accept"] )
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...