[php] PHP에서 API 응답 데이터 처리

이 글에서는 PHP를 사용하여 외부 API로부터 응답 데이터를 처리하는 방법에 대해 알아보겠습니다.

1. cURL을 사용한 API 요청

PHP에서는 cURL을 사용하여 외부 API에 요청을 보내고 응답을 받을 수 있습니다. 다음은 cURL을 사용하여 GET 요청을 보내는 예제입니다.

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.example.com/data',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer YOUR_ACCESS_TOKEN'
  ),
));

$response = curl_exec($curl);

curl_close($curl);

echo $response;
?>

위 예제에서는 cURL을 사용하여 https://api.example.com/data 로 GET 요청을 보내고, 응답을 받아 출력하는 방법을 보여줍니다.

2. JSON 데이터 처리

외부 API로부터 받은 응답 데이터가 JSON 형식일 경우, PHP에서는 json_decode 함수를 사용하여 데이터를 배열로 변환할 수 있습니다. 다음은 JSON 응답 데이터를 처리하는 예제입니다.

<?php
$curl = curl_init();

// cURL 설정 생략

$response = curl_exec($curl);

curl_close($curl);

$data = json_decode($response, true);

var_dump($data);
?>

위 예제에서는 json_decode 함수를 사용하여 받은 JSON 형식의 응답 데이터를 배열로 변환하고, var_dump를 사용하여 변환된 데이터를 출력하는 방법을 보여줍니다.

3. 오류 처리

API 요청 시 발생할 수 있는 오류를 처리하기 위해서는 curl_error 함수를 사용하여 cURL 함수의 오류 메시지를 가져올 수 있습니다. 또한, HTTP 상태 코드를 확인하여 요청이 성공했는지를 판별할 수 있습니다.

<?php
$curl = curl_init();

// cURL 설정 생략

$response = curl_exec($curl);

if($response === false) {
    echo 'cURL error: ' . curl_error($curl);
} else {
    $http_status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    if($http_status === 200) {
        $data = json_decode($response, true);
        var_dump($data);
    } else {
        echo 'HTTP error: ' . $http_status;
    }
}

curl_close($curl);
?>

위 예제에서는 cURL 함수의 오류 및 HTTP 상태 코드를 확인하여 오류 처리하는 방법을 보여줍니다.

4. 결론

이렇게 PHP에서 외부 API 응답 데이터를 처리하는 방법에 대해 알아보았습니다. cURL을 사용하여 API 요청을 보내고, JSON 데이터를 변환하며, 오류를 처리하는 방법을 익혀두면 실제 프로젝트에서 API 통신 시 유용하게 활용할 수 있을 것입니다.