2

JSON形式のPOSTメッセージを受け入れるsinatraWebサービスをセットアップしました。着信データに対してさまざまな検証を実行し、問題が発生した場合、またはその結果に何か問題がある場合は、halt 400, "You're doing it wrong"何が間違っているのかをもう少し詳しく説明します。

エラーメッセージ(「あなたは間違っています」など)はクライアントに正常に送信されますが、クライアントの実装で問題が発生している場所を確認できるように、サーバーにログオンしてもらいたいと思います。それを行う簡単な方法はありますか?

4

2 に答える 2

4

ロギングをチェックしてくださいException#backtrace。次のようなことraise RuntimeError(またはその他のエラー)を実行してから、エラーをキャッチし、の結果をerror.backtraceログに送信する必要がある場合があります。

于 2012-05-31T00:57:18.503 に答える
2

私を正しい方向に向けてくれたCarlZulaufに感謝します。halt 400, "message"最後に、すべての呼び出しをこのメソッドの呼び出しに置き換えました。

def invalid_request! message
  logger.info "Request rejected: #{message}\n#{caller(1).join "\n"}"
  halt 400, message
end
于 2012-06-01T07:08:39.263 に答える