본문 바로가기
PHP

POST 방식의 API 호출 예제

by 코딩박사 2025. 6. 24.
반응형

PHP로 실제 API를 사용하는 간단한 예제를 소개하겠습니다. 여기서는 공공 데이터 API 또는 JSONPlaceholder라는 테스트용 무료 API를 사용해 데이터를 가져와 보겠습니다.

PHP로 POST 방식 API 호출
- 테스트용 무료 API : JSONPlaceholder
이 API는 POST /posts 요청을 받아 테스트용 데이터를 생성한 것처럼 응답을 돌려줍니다. (실제 저장은 하지 않음)

PHP 코드 예제 (cURL로 POST 요청)

<?php
// 1. 요청할 API URL
$url = 'https://jsonplaceholder.typicode.com/posts';

// 2. 전송할 데이터 배열
$data = [
    'title' => 'Hello API',
    'body' => 'This is a test post from PHP',
    'userId' => 1
];

// 3. JSON 형식으로 변환
$jsonData = json_encode($data);

// 4. cURL 초기화
$ch = curl_init($url);

// 5. 옵션 설정 (POST 방식 + 데이터 + 헤더)
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Content-Length: ' . strlen($jsonData)
]);

// 6. 실행 및 결과 저장
$response = curl_exec($ch);

// 7. 에러 확인
if (curl_errno($ch)) {
    echo "오류 발생: " . curl_error($ch);
} else {
    // 응답 출력
    $result = json_decode($response, true);
    echo "API 응답 결과:<br>";
    echo "<pre>" . print_r($result, true) . "</pre>";
}

// 8. cURL 세션 종료
curl_close($ch);
?>

 

실행 결과 예시 (성공 시)

{
  "title": "Hello API",
  "body": "This is a test post from PHP",
  "userId": 1,
  "id": 101
}

 

반응형

 

설명

항목 설명
CURLOPT_POST POST 요청 방식 지정
CURLOPT_POSTFIELDS 전송할 데이터
Content-Type: application/json JSON 데이터임을 명시
CURLOPT_RETURNTRANSFER 결과를 문자열로 반환

 

실전 팁

- 인증이 필요한 경우 Authorization: Bearer YOUR_TOKEN 헤더를 추가해야 합니다.

- application/x-www-form-urlencoded 방식도 가능하며 http_build_query() 사용하면 됩니다.

- PHP 8.1+에서는 curl_* 대신 Guzzle 등 외부 HTTP 클라이언트도 추천합니다.

 

반응형