ボトルを使用して、JSON のみを出力する HTTP エンドポイントを公開しています。
現在スローされているエラー: {'error': %s, 'error_message': %s, 'status_code': #}
。
だから私が持っているすべてのエンドポイントデコレータ機能で:
try:
someObj = <stuff>
except <MyCustomErrors> as e:
response.status = e.response.pop('status_code', 500)
return e.response
response.status = someObj.response.pop('status_code', 200)
return someObj.response
しかし、例外をまとめて使用することを簡単に避けることができたので、オーバーヘッドが削減された、より簡潔で DRYer なエンドポイント コードが得られました。
ただし、欠点もあります。他の開発者は、出力形式を理解するために少なくとも 1 回はコードを読む (または実行する) 必要があります。
ドキュメントはここで機能します。しかし、このセットアップ全体が悪い習慣ですか?