Slim Framework で安らかな API を構築しました。エラー状態については、エラー ケースごとに適切なエラー コードで応答し、$app->halt で呼び出すだけです。次に例を示します。
$app->halt(403, "Unauthorized");
しかし、API を -v でカールさせ、HTTPFox を使用して Firefox でヘッダーを表示すると、常にエラー コード 500 が表示されます。これに気付いた人はいますか? 足りないものはありますか?
Slim Framework で安らかな API を構築しました。エラー状態については、エラー ケースごとに適切なエラー コードで応答し、$app->halt で呼び出すだけです。次に例を示します。
$app->halt(403, "Unauthorized");
しかし、API を -v でカールさせ、HTTPFox を使用して Firefox でヘッダーを表示すると、常にエラー コード 500 が表示されます。これに気付いた人はいますか? 足りないものはありますか?
ルート コールバックの外で halt() メソッドを呼び出すことはできません。このように使用する必要があります。
$app->get('/method/', function () {
//logical controls
//do something
//or
$app->halt();
});
Halt() と setStatus() には違いがあります。
halt()を使用すると、現在のスクリプトの実行を停止し、送信することを選択した HTTP ステータス コードとメッセージに従って応答をレンダリングします。次のコードを使用して、アプリのどこでも実行できます。
$app = \Slim\Slim::getInstance(); //if you don't have access to $app
$statusCode = 403;
$body = 'Unauthorized';
$app->halt($statusCode, $body);
//App will stop immediately
setStatus ()または$this->response->status(); を使用 送信する HTTP ステータス コードのみを変更しますが、アプリは通常どおり実行を継続し、停止しません。ルート実行の最後にスリムがクライアントに送信するヘッダーのみを変更します。
$app = \Slim\Slim::getInstance(); //if you don't have access to $app
$statusCode = 403;
$app->response->setStatus(400);
//App will continue normally