API

  • まず権限のチェック
  • 不正な呼び出しにはとりあえず403
  • リクエストボディのバリデートよりも前に403を返すかどうかを決定
  • 操作対象のリソースがない場合も403

イベントハンドラとモデルの責務分解

  • 403を投げるのはイベントハンドラ(コントローラー)とする

findUniqueOrThrow問題

Repositoryが403エラーを投げるのはどうなんだろう(ビジネスロジックっぽいのがちょっと混入するので嫌な気持ちはある)