ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

thumbnail

Labels:  DevOps 投稿者:mori-dev

ぼくの考えた最強の WebAPI のエラーレスポンス型(仮)の mson を発表します!!1

です。
昨日、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 を配列とすることで、たとえばバリデーションエラーなんかを一括してレスポンスできる

参考ページ

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。

PHPエンジニア
Rubyエンジニア
フロントエンドエンジニア
インフラエンジニア
新卒エンジニア
その他採用情報

関連記事

tmux screen capture
複数ターミナルを操作するときの決定版!tmuxの使い方

ランサーズのエンジニアのtomohiroです。 自分が普段使っているツールのひとつ、tmuxを紹介します。特に新しくはないですが、他の人の使い方も気になるんじゃないかなと思ったので、書いてみます。 tmux(terminal multiplexer)とは 1つ …

Ruby Mechanize によるサービス監視のすすめ

こんにちわ。エンジニアの こじま です。 今回は,ランサーズのサービス品質を支える サービス監視システムのご紹介をします。 弊社プラットフォームは,複数の監視システムを導入して運用を実施しています。 システム 用途 (自社製)サービス監視システム サービス稼働 …

EC2 SSH サーバ ごった煮 〜 Google Authenticator + ChatWork 通知 入り

こんにちわ。 Lancers のバックエンドの開発と運用担当の こじま です。   みなさん,サーバをどのようにリモートしていますか? 直接,ターゲットのサーバへログインせず SSH サーバを経由してリモートすることが多いと思います。 SSH サーバ …