PHP RESTful API 설계 및 구현
RESTful API는 Representational State Transfer의 원칙을 따라 설계된 API로, 자원을 명시하고 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 해당 자원에 대한 행위를 정의합니다. 이를 통해 클라이언트와 서버 간의 데이터 교환을 효율적으로 관리할 수 있습니다.
RESTful API 설계 원칙
- 자원 식별: 각 API 엔드포인트는 명확한 자원을 식별할 수 있는 URI를 가져야 합니다. 예를 들어,
/users
,/users/{id}
와 같은 형태로 자원을 표현합니다. - HTTP 메서드 사용: 각 작업(생성, 조회, 수정, 삭제)에 적절한 HTTP 메서드를 사용하여 행위를 나타냅니다.
GET
: 리소스 조회POST
: 리소스 생성PUT
: 리소스 수정DELETE
: 리소스 삭제
- 상태와 표현: RESTful API는 자원의 상태를 표현하기 위해 JSON, XML과 같은 데이터 형식을 사용합니다.
- 상태의 전이: Hypermedia를 통해 클라이언트가 가능한 상태와 행동을 파악할 수 있어야 합니다.
RESTful API 구현 예제
예제: 사용자 관리 API
이 예제에서는 사용자 정보를 관리하는 간단한 RESTful API를 설계하고 구현해보겠습니다.
클라이언트 측 (JavaScript – Ajax를 사용하여 API 호출)
// Ajax를 사용하여 RESTful API 호출하는 예제 // XMLHttpRequest 객체 생성 var xhttp = new XMLHttpRequest(); // 서버 URL 설정 (사용자 목록 조회) var url = "https://example.com/api/users"; // GET 요청 설정 xhttp.open("GET", url, true); // 요청 완료 후 처리할 콜백 함수 설정 xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // 서버에서 받은 JSON 데이터 파싱 var users = JSON.parse(this.responseText); // 사용자 목록 출력 예제 console.log("사용자 목록:"); users.forEach(function(user) { console.log(user.name + " - " + user.email); }); } }; // GET 요청 전송 xhttp.send();
서버 측 (PHP – RESTful API 구현)
<?php // PHP에서 사용자 관리 RESTful API 구현 예제 // 요청 메서드에 따라 처리 $method = $_SERVER['REQUEST_METHOD']; switch ($method) { case 'GET': // 사용자 목록 조회 API $users = array( array('id' => 1, 'name' => 'John Doe', 'email' => 'john@example.com'), array('id' => 2, 'name' => 'Jane Smith', 'email' => 'jane@example.com') ); // JSON 형식으로 출력 echo json_encode($users); break; case 'POST': // 사용자 생성 API (예: POST 메서드로 사용자 정보를 받아 처리) // $data = json_decode(file_get_contents('php://input'), true); // 여기서는 예제이므로 생략 // 새 사용자 생성 로직 구현 // HTTP 상태 코드 설정 http_response_code(201); // Created echo json_encode(array('message' => '사용자가 생성되었습니다.')); break; // PUT, DELETE 메서드에 대한 처리도 추가 가능 default: // 지원하지 않는 메서드에 대한 처리 http_response_code(405); // Method Not Allowed echo json_encode(array('message' => '지원하지 않는 메서드입니다.')); break; } ?>
위 예제에서는 클라이언트는 XMLHttpRequest를 사용하여 서버의 RESTful API를 호출하고, 서버는 PHP로 API 엔드포인트를 구현하여 GET 요청에 대한 사용자 목록을 반환합니다. POST 요청에 대한 사용자 생성 API 예제도 주석으로 추가되어 있습니다.
이와 같이 PHP를 사용하여 RESTful API를 설계하고 구현하면, 클라이언트와 서버 간의 데이터 교환을 효율적으로 관리할 수 있습니다. RESTful API는 자원을 명확히 식별하고, HTTP 메서드를 통해 해당 자원에 대한 작업을 정의하여 사용합니다.