Проблема с API PHP чтение JSON - PullRequest
0 голосов
/ 07 мая 2020

Кажется, проблема с обработкой ввода JSON API. Это мой API (функция удаления)

function doDeleteCustomer() {
global $db;
if(isParamSet(array('id'))) {
    if(isParamAvailable(array('id'))) {
        $customerId = $_REQUEST['id'];
        $sql = "DELETE FROM customers WHERE ID=:customerid";
        $stmt = $db->prepare($sql);
        $stmt->execute(
            array(
                ':customerid' => $customerId
            )
        );
        if($stmt->rowCount() > 0) {
            $response = array();
            $response["error"] = false;
            $response["status"] = 200;
            $response["data"] = array();
            $response["message"] = "Successfully removed customer!";
        } else {
            $response = array();
            $response["error"] = true;
            $response["status"] = 400;
            $response["data"] = array();
            $response["message"] = "Unable to remove customer!";
        }
        return json_encode($response);
    }
}

}

Когда я тестирую его в Postman, все работает нормально, но я предоставил информацию в x- www-form-urlencoded.

enter image description here

Но когда я хочу ввести необработанные JSON данные, я получаю сообщение о том, что требуемое поле id отсутствует ... Что я делаю не так ?

enter image description here

Ответы [ 2 ]

3 голосов
/ 07 мая 2020

Вы должны использовать json_decode перед обработкой ваших данных, если вы хотите, чтобы ваше приложение принимало json. В качестве альтернативы, если вы хотите, чтобы он поддерживал оба, вы можете использовать try catch для переключения.

Более подробную информацию о json_decode можно найти здесь и здесь .

0 голосов
/ 07 мая 2020

Я нашел это благодаря этому от Zir c.

Все, что мне нужно было сделать, это $_REQUEST = json_decode(file_get_contents('php://input'), true); перед первым оператором if

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...