Validation Night で話してきた
なんかしらんけどスライドアップしようとしたら slideshare に拒否られてるので悲しみ溢れております。
とりあえず思ってることをいくつか。
相関バリデーションどうよ?
ベーシックな単項目の Validation 以上のものを Validation framework でやろうとするのは悲しみしか産まないので、たとえば以下のようにしています。
List<String> messages = new Validator().validate(params);
if (params.isHojin()) {
if (!params.has代表者名()) {
messages.add("法人は代表者名いれてね!");
}
} else {
}
そこあんま気張ってもね、的な。
HTTP で Validation error 上げるとき 200 を返すべきか
200 を返すべきだと思います。
僕はあまり REST 好きではなく、RPC 派なので。。
RPC の概念でいいますと、エンドポイントのコールそのものの状態を返すのに HTTP Status コードを利用し、処理の詳細については response body にて述べるのが極めて自然であります。
あとまあ、弊社の場合、fluentd でログを集めて、閾値以上に 4xx 出てたらアラート上がるみたいなことをやっており、そういったインフラを利用するためにはそういうふうになっていた方が便利だという事情もあります。
Servlet について
Servlet は DELETE とかに対応してないのでは?みたいな話があったが、今は普通に doDelete とかもサポートされているようだ。昔どうだったかはしらない。
Bean Valiation どうよ?
Bean Validation の JSR は、なんというかこう、実装をドキュメント化しただけで、あれを自分たちで実装しようとは思えない感じですよね。。