약 7분
본문 듣기
읽기 설정
글자 크기
줄 간격
글꼴
4.5 REST API 개념
REST API란?
REST(Representational State Transfer) API는 웹 상호작용을 위한 아키텍처 스타일로, HTTP 프로토콜을 통해 데이터의 전송 및 조작을 가능하게 합니다. REST API는 클라이언트와 서버 간의 통신을 단순화하고, 데이터 표현을 일관되게 유지하여 웹 서비스의 효율적인 구조를 제공합니다.
웹의 동작 원리
웹에서 클라이언트(브라우저)는 서버에 요청을 보냅니다. 서버는 PHP로 작성된 백엔드 로직을 실행하고, 데이터베이스와 상호작용하여 결과를 클라이언트에 반환합니다. 이 과정에서 REST API는 클라이언트와 서버 사이의 인터페이스 역할을 하여, 다양한 요청을 처리합니다. 이 흐름은 다음과 같습니다:
- 클라이언트: HTTP 요청을 보냅니다.
- 서버: 요청을 처리하고, 필요한 데이터를 데이터베이스에서 조회합니다.
- 데이터베이스: 쿼리를 통해 정보를 반환합니다.
- 서버: 클라이언트에게 결과를 JSON 형식으로 응답합니다.
REST API의 주요 특징
- 자원 기반: 데이터는 URI(Uniform Resource Identifier)로 식별됩니다.
- HTTP 메서드: 자원에 대한 동작은 HTTP 메서드(GET, POST, PUT, DELETE)를 통해 정의됩니다.
- 무상태성: 각 요청은 독립적이며, 서버는 요청의 상태를 유지하지 않습니다.
- 캐시 가능: 응답은 캐시 가능하여 성능을 향상시킬 수 있습니다.
예제: 간단한 REST API 구현
우선 데이터베이스에 users 테이블을 생성하고, REST API의 기본적인 CRUD 기능을 구현해보겠습니다.
1. 데이터베이스 테이블 생성
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
2. REST API PHP 코드
<?php
// Database connection
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$username = 'root';
$password = '';
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
];
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
// GET request to fetch users
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$stmt = $pdo->query('SELECT * FROM users');
$users = $stmt->fetchAll();
echo json_encode($users);
}
// POST request to create new user
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare('INSERT INTO users (username, email) VALUES (:username, :email)');
$stmt->execute([
':username' => $data['username'],
':email' => $data['email'],
]);
echo json_encode(['status' => 'User created']);
}
?>
실습
- 위 코드를 바탕으로 GET과 POST 메서드를 사용해보세요.
- 새로운 유저를 추가하고, 기존 유저 목록을 JSON 형식으로 받아보세요.
정리
REST API는 현대 웹 개발에 핵심적인 기술입니다. 클라이언트와 서버 간의 효율적인 데이터 처리를 가능하게 하며, 다양한 플랫폼과의 연동을 쉽게 만듭니다. 앞으로의 실습을 통해 REST API의 다양한 기능을 심화 학습해보세요.
응용 문제
- 자원에 대한 PUT(업데이트) 및 DELETE(삭제) 메서드를 추가하여 기능을 확장해보세요.
- 데이터 유효성 검사를 추가하여, 잘못된 데이터 입력을 방지하는 로직을 구현해보세요.
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨보세요.