API 기반 아키텍처의 필요성
모바일 앱, 외부 서비스 연동이 늘어나면서 REST API 개발이 필수가 되었습니다. 같은 백엔드를 여러 클라이언트(웹, 앱, 제3자)가 사용할 수 있게 하려면 API 설계가 중요합니다.
REST API 설계 원칙
// 리소스 기반 URL 설계
GET /api/posts // 모든 포스트 조회
GET /api/posts/123 // 특정 포스트 조회
POST /api/posts // 포스트 작성
PUT /api/posts/123 // 포스트 수정
DELETE /api/posts/123 // 포스트 삭제
// 응답 형식 (JSON)
{
"status": "success",
"code": 200,
"data": {
"posts": []
}
}
인증 처리
API는 보통 토큰 기반 인증(JWT)을 사용합니다.
// 토큰 검증
$headers = getallheaders();
$authHeader = $headers['Authorization'] ?? '';
$token = str_replace('Bearer ', '', $authHeader);
// JWT 토큰 검증
try {
$decoded = JWT::decode($token, KEY, array('HS256'));
} catch (Exception $e) {
http_response_code(401);
echo json_encode(['error' => 'Invalid token']);
exit;
}