Ring ライブラリを使用して、Clojure で記述された REST スタイルの API でエラーを処理する良い方法は何だと人々は考えているのだろうと思っていました。
Paul Umbers が Clojure RESTful API のチュートリアルで採用したアプローチの 1 つは、例外を自然に発生させ、例外を特定の HTTP ステータス コードに変換することに特化したミドルウェアまでバブルアップできるようにすることです。
基本的に、DB 制約は独自の特定のエラー (PSQLException など) をスローし、モデル バリデーターは別の型をスローします。これらはすべてコード 400 の傘下にあります。不明な例外は、一般的な例外ハンドラーによってキャッチされ、500 コードが返されます。
いくつかの考え:
- もっとうまくやれるでしょうか?これは、特定の理由で間違った設計ですか?
- 多くの人は、一般的な Exception タイプを処理することは悪い習慣だと主張します。ここでもそのような議論をすることができますか?
ありがとう!