web-dev-qa-db-ja.com

シナトラで空の体を返す

ステータスが200の空のボディを返すようにsinatraを指定するにはどうすればよいですか?

できます body ""しかし、これを行うためのより明確な方法はありますか?

18
0xSina

ラックインターフェースの使用

ドキュメント から:

有効なRack応答、Rack本体オブジェクト、またはHTTPステータスコードのいずれかである任意のオブジェクトを返すことができます。

  • [status(Fixnum)、headers(Hash)、response body(#eachに応答)]の3つの要素を持つ配列
  • 2つの要素を持つ配列:[status(Fixnum)、response body(responds to #each)]
  • #eachに応答し、指定されたブロックに文字列のみを渡すオブジェクト
  • ステータスコードを表すFixnum

したがって、いずれかを返す

  1. [200, {}, ['']]
  2. [200, ['']]
  3. ['']
  4. 200

トリックを行う必要があります。

ヘルパーの使用

本文、ステータスコード、ヘッダーの設定 では、ヘルパーメソッドstatusbody(およびheaders)が導入されています。

get '/nothing' do
  status 200
  body ''
end
26
DMKE

docs からも:

フィルタまたはルート内でリクエストをすぐに停止するには、次のコマンドを使用します。

停止

停止時のステータスを指定することもできます。

停止410

したがって、200ステータスのみが必要な場合は、次のようになります。

halt 200

haltは、Sinatraが提供する最も便利な方法の1つであり、ドキュメントを読む価値があります。ルートの処理の早い段階でエラーメッセージを返すためによく使用します。たとえば、必要なパラメータがない場合などです。

5
iain