rest — Полет PHP RESTful API не возвращает заголовок HTTP Status

Я использую Flight PHP Framework для разработки RESTful API в PHP. Все работает отлично, за исключением всех моих маршрутов, ответ от API всегда содержит HTTP-статус «200», даже если я установил его как «403» или «500», используя код PHP:

header('HTTP/1.1 403 Forbidden');

Я использую POSTMAN chrome add для отправки вызовов API, и он всегда возвращает статус «200 OK».

введите описание изображения здесь

Это код FLIGHT PHP:

Flight::route('GET /organisation/id', function(){

if (isset($_SERVER['HTTP_APIKEY']) && isset($_SERVER['HTTP_CLIENTID'])) {

$organisationID = checkAPIKey($_SERVER['HTTP_APIKEY']);

if ($organisationID !== false) {

$response = array('status' => '200', 'data' => array('organisationID' => $organisationID));
header('HTTP/1.1 200 OK');
header('Content-type: application/json');

logAPICall($_SERVER['HTTP_CLIENTID'], $organisationID, $_SERVER['REMOTE_ADDR'], json_encode($response), '', $_SERVER['HTTP_APIKEY']);

echo json_encode($response);

} else {

header('HTTP/1.1 403 Forbidden');
header('Content-type: application/json');
$responseArray = array( 'status' => '403', 'errorCode' => '1', 'error' => 'Unauthorised API access');

logAPICall($_SERVER['HTTP_CLIENTID'], $organisationID, $_SERVER['REMOTE_ADDR'], json_encode($responseArray), '', 'No API Key');

$stmt = null;
$db = null;

echo json_encode($responseArray);

}

} else {

header('HTTP/1.1 403 Forbidden');
header('Content-type: application/json');
$responseArray = array( 'status' => '403', 'errorCode' => '1', 'error' => 'Unauthorised API access or Missing Client Header');

logAPICall('No Client Header', '', $_SERVER['REMOTE_ADDR'], json_encode($responseArray), '', 'No API Key');

$stmt = null;
$db = null;

echo json_encode($responseArray);

}

});

Любые идеи относительно того, почему это происходит, будут высоко оценены! ура

0

Решение

Не можете ответить на ваш вопрос, но пытались ли вы использовать метод json фреймворка? Меня устраивает.

    Flight::json(array(
'status' => 403,
'errorCode' => '1'
), 403);

Увидеть источник.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]