0

Was ist die beste Vorgehensweise beim Umgang mit Ausnahmen in einer Grails-Anwendung (2.4.5), wo es REST-Anfragen und reguläre Browser-Anfragen gibt?Best Practice für die Behandlung von Ausnahmen für REST- und Browser-Anfragen?

Ich teile die gleiche ExceptionController zwischen RESTful API-Aufrufe und regulären Web-Anfragen.

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

Für regelmäßige Web-Anfragen, dies rief render(view: 'show', model: model)

Später wurde eine RESTful API eingeführt wurde. Da die Ausnahmen von dem ExceptionController noch Route wird, ich respond(view: 'show', model: model) geändert schien Das ist nicht so zu arbeiten, ich

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

Das scheint zu funktionieren zu

aktualisiert, aber ich bin nicht überzeugt, dass es die beste Lösung ist. Diese

+0

Die Handhabung des Antwortformats in Ihrem Fehler-Controller scheint mir OK. Warum denkst du, dass das nicht gut ist? –

Antwort

1

ist genau die gleiche Lösung wie ich gestern durchgeführt, war die einzige geringfügige Änderung '*' statt json

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

In meinem Fall angeben, i auch in Config.groovy die Liste der Benutzeragenten entfernt, deren accept Header ignoriert, aber das ist nur relevant, wenn Sie diesen Header für die Inhaltsverhandlung verwenden.