4.5 REST API 개념

약 7분

본문 듣기
읽기 설정

글자 크기

줄 간격

글꼴

4.5 REST API 개념

REST API란?

REST(Representational State Transfer) API는 웹 상호작용을 위한 아키텍처 스타일로, HTTP 프로토콜을 통해 데이터의 전송 및 조작을 가능하게 합니다. REST API는 클라이언트와 서버 간의 통신을 단순화하고, 데이터 표현을 일관되게 유지하여 웹 서비스의 효율적인 구조를 제공합니다.

웹의 동작 원리

웹에서 클라이언트(브라우저)는 서버에 요청을 보냅니다. 서버는 PHP로 작성된 백엔드 로직을 실행하고, 데이터베이스와 상호작용하여 결과를 클라이언트에 반환합니다. 이 과정에서 REST API는 클라이언트와 서버 사이의 인터페이스 역할을 하여, 다양한 요청을 처리합니다. 이 흐름은 다음과 같습니다:

  1. 클라이언트: HTTP 요청을 보냅니다.
  2. 서버: 요청을 처리하고, 필요한 데이터를 데이터베이스에서 조회합니다.
  3. 데이터베이스: 쿼리를 통해 정보를 반환합니다.
  4. 서버: 클라이언트에게 결과를 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']);
}
?>

실습

  1. 위 코드를 바탕으로 GET과 POST 메서드를 사용해보세요.
  2. 새로운 유저를 추가하고, 기존 유저 목록을 JSON 형식으로 받아보세요.

정리

REST API는 현대 웹 개발에 핵심적인 기술입니다. 클라이언트와 서버 간의 효율적인 데이터 처리를 가능하게 하며, 다양한 플랫폼과의 연동을 쉽게 만듭니다. 앞으로의 실습을 통해 REST API의 다양한 기능을 심화 학습해보세요.

응용 문제

  1. 자원에 대한 PUT(업데이트) 및 DELETE(삭제) 메서드를 추가하여 기능을 확장해보세요.
  2. 데이터 유효성 검사를 추가하여, 잘못된 데이터 입력을 방지하는 로직을 구현해보세요.

댓글 0

댓글을 남기려면 로그인하세요.

아직 댓글이 없습니다. 첫 댓글을 남겨보세요.