[php] PHP에서 API 호출을 위한 응답 디코딩 처리

웹 애플리케이션을 개발할 때 API를 호출해야 하는 경우가 있습니다. API 응답은 종종 gzip 또는 deflate로 압축되어 있어서 디코딩이 필요합니다. 이 글에서는 PHP에서 API 응답을 디코딩하는 방법에 대해 안내하겠습니다.

1. curl을 사용한 API 호출

먼저, curl을 사용하여 API를 호출하고 응답을 받아옵니다.

<?php
// 인증 및 다른 옵션을 설정하는 부분은 생략
$ch = curl_init('https://api.example.com/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>

2. 압축된 응답 디코딩

이제 이 응답이 압축되어 있다면 디코딩이 필요합니다. HTTP 헤더를 확인하여 Content-Encoding이 gzip 또는 deflate로 설정되어 있는지 확인합니다.

<?php
// 이전 코드에 이어서...
$headers = curl_getinfo($ch);
$contentEncoding = $headers['content_encoding'];

if ($contentEncoding === 'gzip') {
    $decodedResponse = gzdecode($response);
} elseif ($contentEncoding === 'deflate') {
    $decodedResponse = gzinflate($response);
} else {
    $decodedResponse = $response;
}
?>

위 코드에서 gzdecode 또는 gzinflate 함수를 사용하여 압축을 해제하고 디코딩된 응답을 얻을 수 있습니다.

이제 API 응답을 디코딩하고 처리할 수 있습니다. 기본적으로, 대부분의 최신 PHP 버전에서는 gzip 및 deflate 압축 형식이 지원됩니다.

더 자세한 내용은 PHP 공식 문서를 참고할 수 있습니다.

이상으로 PHP에서 API 호출 후 응답을 디코딩하는 방법에 대해 알아보았습니다.