ステータスが200の空のボディを返すようにsinatraを指定するにはどうすればよいですか?
できます body ""
しかし、これを行うためのより明確な方法はありますか?
ドキュメント から:
有効なRack応答、Rack本体オブジェクト、またはHTTPステータスコードのいずれかである任意のオブジェクトを返すことができます。
- [status(Fixnum)、headers(Hash)、response body(
#each
に応答)]の3つの要素を持つ配列- 2つの要素を持つ配列:[status(Fixnum)、response body(responds to #each)]
#each
に応答し、指定されたブロックに文字列のみを渡すオブジェクト- ステータスコードを表すFixnum
したがって、いずれかを返す
[200, {}, ['']]
[200, ['']]
['']
200
トリックを行う必要があります。
本文、ステータスコード、ヘッダーの設定 では、ヘルパーメソッドstatus
とbody
(およびheaders
)が導入されています。
get '/nothing' do
status 200
body ''
end
docs からも:
フィルタまたはルート内でリクエストをすぐに停止するには、次のコマンドを使用します。
停止
停止時のステータスを指定することもできます。
停止410
したがって、200
ステータスのみが必要な場合は、次のようになります。
halt 200
halt
は、Sinatraが提供する最も便利な方法の1つであり、ドキュメントを読む価値があります。ルートの処理の早い段階でエラーメッセージを返すためによく使用します。たとえば、必要なパラメータがない場合などです。