私は単純な Sinatra アプリを作成しています。ユーザーが特定のデータを含むリクエストを投稿した場合、メッセージ CLIENT_ERROR などでエラー '453' (カスタム エラー コード) を返したいと考えています。
問題は、Sinatra のドキュメントを調べていくつかのテストを行ったところ、応答エラー メッセージを設定する方法が見つからず、応答ステータスだけでした。
したがって、シナトラ応答を設定した場合
get '/' do
response.status = 453
end
私はエラーコードを正しく取得します:
curl -v localhost:4567
* About to connect() to localhost port 4567 (#0)
* Trying 127.0.0.1... connected
> GET / HTTP/1.1
> User-Agent: curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
> Host: localhost:4567
> Accept: */*
>
< HTTP/1.1 453
< X-Frame-Options: sameorigin
< X-XSS-Protection: 1; mode=block
< Content-Type: text/html;charset=utf-8
< Content-Length: 0
< Connection: keep-alive
< Server: thin 1.3.1 codename Triple Espresso
<
* Connection #0 to host localhost left intact
* Closing connection #0
しかし、私がしたいのは:
< HTTP/1.1 453 CLIENT_ERROR
私が持っているのと同じ方法
< HTTP/1.1 200 OK
すべてが計画通りに進むとき。
Sinatra/Rack を使用してこれを行う方法はありますか?