반응형
1. Composer를 통해 Guzzle 설치
터미널에서 프로젝트 폴더로 이동한 후, 아래 명령어를 실행하여 Guzzle을 설치합니다.
composer require guzzlehttp/guzzle
2. Guzzle을 사용한 PHP 코드
<?php
// Composer의 autoload 파일을 포함시킵니다.
require 'vendor/autoload.php';
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
// Guzzle 클라이언트 인스턴스 생성
$client = new Client();
// 환율 정보를 제공하는 API 엔드포인트 (USD 기준)
$apiUrl = 'https://api.exchangerate-api.com/v4/latest/USD';
try {
// GET 메소드로 API 요청
$response = $client->request('GET', $apiUrl);
// HTTP 상태 코드 확인 (200: 성공)
if ($response->getStatusCode() === 200) {
// 응답 본문 읽기
$body = $response->getBody()->getContents();
// JSON 문자열을 PHP 배열로 디코딩
$data = json_decode($body, true);
if ($data === null) {
die("JSON 데이터 디코딩에 실패했습니다.");
}
// 환율 정보 출력 (HTML 테이블)
echo "<h1>USD 기준 환율 정보</h1>";
if (isset($data['rates'])) {
echo "<table border='1' cellspacing='0' cellpadding='5'>";
echo "<tr><th>통화 코드</th><th>환율</th></tr>";
foreach ($data['rates'] as $currency => $rate) {
echo "<tr><td>{$currency}</td><td>{$rate}</td></tr>";
}
echo "</table>";
} else {
echo "환율 정보를 찾을 수 없습니다.";
}
} else {
echo "요청 실패 - HTTP 상태 코드: " . $response->getStatusCode();
}
} catch (RequestException $e) {
// Guzzle 요청 중 예외가 발생한 경우 처리
echo "요청 중 오류 발생: " . $e->getMessage();
}
?>
3. 코드 설명
- Guzzle 클라이언트 생성
new Client()를 이용하여 Guzzle 클라이언트를 생성합니다. - API 요청
$client->request('GET', $apiUrl) 메소드를 사용하여 지정한 API 엔드포인트로 GET 요청을 보냅니다. - 응답 처리
- 응답의 HTTP 상태 코드가 200(성공)인 경우, 응답 본문을 읽어 JSON 데이터를 PHP 배열로 디코딩합니다.
- 디코딩된 데이터에서 rates 항목이 있으면, 이를 HTML 테이블 형식으로 출력합니다.
- 예외 처리
요청이 실패하거나 예외가 발생하면, catch 블록에서 에러 메시지를 출력합니다.
이 코드를 사용하면 Guzzle을 활용하여 환율 정보를 쉽고 안정적으로 가져올 수 있습니다. 실제 서비스에서는 API 키 관리, 캐싱, 오류 로깅 등의 추가 고려사항을 반영하여 사용하시기 바랍니다.
반응형
'DEVEL > PHP' 카테고리의 다른 글
PHP 로또 당첨번호 API (0) | 2025.04.13 |
---|---|
PHP 라라벨 쿼리빌더 테이블 조인 (0) | 2024.04.09 |
라라벨 oAuth 서버 구축 (0) | 2024.03.10 |
PHP POST 전송 (0) | 2024.02.22 |
PHP ChatGPT를 사용해서 번역 프로그램 만들기 (0) | 2024.02.08 |