0

Какова наилучшая практика для обработки исключений в одном приложении Grails (2.4.5), где есть запросы REST и обычные запросы браузера?Лучшая практика для обработки исключений как для запросов REST, так и для браузера?

Я использую один и тот же ExceptionController между вызовами API RESTful и регулярными веб-запросами.

UrlMapping.groovy "500"(controller: "exception", action: "handle")

Для обычных веб-запросов, это звонит render(view: 'show', model: model)

Позже RESTful API был введен. Поскольку исключения будут по-прежнему путь к ExceptionController, я изменил respond(view: 'show', model: model) Это не похоже на работу, так что я обновлен до

withFormat{ 
      html {render(view: 'show', model: model)} 
      json {render model as JSON} 
     } 

Это похоже на работу, но я не уверен, что это самое лучшее решение.

+0

Обращение с форматом ответов в вашем контроллере ошибок кажется мне удобным. Почему вы думаете, что это не хорошо? –

ответ

1

Это точно такое же решение, как я реализован вчера, только небольшое изменение должно было указать '*' вместо json

withFormat{ 
    html {render(view: 'show', model: model)} 
    '*' {render model as JSON} 
} 

В моем случае я также удален в Config.groovy список агентов пользователей, чьи accept заголовок игнорируется, но это имеет смысл только в том случае, если вы используете этот заголовок для согласования контента.

Смежные вопросы