森です。
昨日、API仕様を考えていて、社内チャットで雑談した成果になります。ご査収下さい。
## Error
+ status_code: `500` (number, required) – ステータスコード
+ type: `validation_error` (string, required) – エラー種別。プログラムからの利用を想定
+ logged_at `2014-10-10T13:50:40+09:00` (string, required) – エラー発生時刻。 `yyyy-MM-ddTHH:mm:ss` 形式。調査用
+ message: `validation_error_foo_bar` (string, optional) – エラーの詳細な説明
+ user_message_title: `入力内容が不正です` (string, optional) – ユーザに直接表示できるエラーのタイトル
+ user_messages: `XXXを入力してください` (array, optional) – ユーザに直接表示できるエラーの説明文の配列
+ tip: `ああするとよいかもしれません` (string, optional) – どう対処したらいいかの説明
- logged_at はサーバーのログ出力形式と合わせる
- 人間用のメッセージなのか、コード用のメッセージなのか明示した
- レスポンスボディでステータスコードなどいらん、と思ってたけど改心した
- user_messages を配列とすることで、たとえばバリデーションエラーなんかを一括してレスポンスできる