PHP RESTful 웹 서비스 (RESTful Web Services)
RESTful 웹 서비스 개요
REST(Representational State Transfer)는 자원을 명시하고, HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 해당 자원에 대한 행위를 정의하는 아키텍처적 스타일입니다. RESTful 웹 서비스는 HTTP를 통해 자원을 CRUD(Create, Read, Update, Delete)하는 방식으로 데이터를 처리합니다. RESTful 서비스는 URI를 통해 자원을 식별하고, HTTP 메서드를 통해 해당 자원에 대한 작업을 수행합니다.
PHP에서 RESTful 웹 서비스 구현
PHP에서 RESTful 웹 서비스를 구현하기 위해서는 HTTP 메서드에 따라 적절한 동작을 정의하는 방법이 중요합니다. PHP에서는 $_GET
, $_POST
, $_PUT
, $_DELETE
등의 전역 변수를 사용하여 요청을 처리할 수 있습니다. 일반적으로 PHP에서 RESTful 서비스를 구현할 때는 추가적인 라이브러리나 프레임워크를 사용하여 구현할 수도 있습니다.
예제: PHP에서 간단한 RESTful 웹 서비스 구현하기
이 예제에서는 PHP와 MySQL을 사용하여 간단한 RESTful 웹 서비스를 구현하는 방법을 보여줍니다. 여기서는 CRUD 작업을 수행하는 API 엔드포인트를 만들어 보겠습니다.
<?php // 데이터베이스 연결 설정 $host = 'localhost'; $dbname = 'test'; $username = 'root'; $password = ''; // 데이터베이스 연결 try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); } catch (PDOException $e) { die("데이터베이스 연결 실패: " . $e->getMessage()); } // 요청 메서드 가져오기 (GET, POST, PUT, DELETE 처리) $method = $_SERVER['REQUEST_METHOD']; switch ($method) { case 'GET': // 데이터 조회 API (여기서는 모든 사용자 조회) $stmt = $pdo->prepare("SELECT * FROM users"); $stmt->execute(); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); echo json_encode($users); break; case 'POST': // 데이터 생성 API (여기서는 새로운 사용자 추가) $data = json_decode(file_get_contents('php://input'), true); $name = $data['name']; $email = $data['email']; $stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $stmt->execute(); echo json_encode(array('message' => '사용자가 추가되었습니다.')); break; case 'PUT': // 데이터 업데이트 API (여기서는 사용자 정보 업데이트) parse_str(file_get_contents("php://input"), $put_vars); $id = $put_vars['id']; $name = $put_vars['name']; $email = $put_vars['email']; $stmt = $pdo->prepare("UPDATE users SET name = :name, email = :email WHERE id = :id"); $stmt->bindParam(':id', $id); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $stmt->execute(); echo json_encode(array('message' => '사용자 정보가 업데이트 되었습니다.')); break; case 'DELETE': // 데이터 삭제 API (여기서는 사용자 삭제) parse_str(file_get_contents("php://input"), $delete_vars); $id = $delete_vars['id']; $stmt = $pdo->prepare("DELETE FROM users WHERE id = :id"); $stmt->bindParam(':id', $id); $stmt->execute(); echo json_encode(array('message' => '사용자가 삭제되었습니다.')); break; default: // 지원하지 않는 메서드에 대한 처리 http_response_code(405); // Method Not Allowed echo json_encode(array('message' => '지원하지 않는 메서드입니다.')); break; } ?>
위 예제에서는 PHP와 PDO를 사용하여 MySQL 데이터베이스에 접근하고, 각 HTTP 메서드(GET, POST, PUT, DELETE)에 따라 CRUD 작업을 수행하는 RESTful 웹 서비스를 구현하였습니다. 클라이언트는 각 API 엔드포인트를 호출하여 사용자 정보를 조회, 추가, 업데이트, 삭제할 수 있습니다.
RESTful 웹 서비스는 간단하면서도 강력한 데이터 처리 방식을 제공하여, 다양한 플랫폼과 언어 간의 상호 운용성을 확보할 수 있습니다. PHP에서는 기본적인 HTTP 메서드 처리와 데이터베이스 연동을 통해 손쉽게 RESTful 서비스를 구현할 수 있습니다.