RESTful API 설계 원칙과 구현
RESTful API는 백엔드 서버와 프론트엔드(또는 앱)가 데이터를 주고받을 때 사용하는 '국제 표준 규약' 같은 것입니다. 주소(URI)는 '무엇을' 할지 나타내고, HTTP 메서드는 '어떤 행동'을 할지 명확하게 구분합니다.
🌐 RESTful HTTP 메서드 (CRUD)
GET
/users
(Read) 모든 회원을 조회합니다.
POST
/users
(Create) 새로운 회원을 생성합니다.
PUT
/users/{id}
(Update) 특정 회원의 정보를 수정합니다.
DELETE
/users/{id}
(Delete) 특정 회원을 삭제합니다.
$app->group('/api/users', function (RouteCollectorProxy $group) {
// 전체 조회 (GET)
$group->get('', function ($request, $response) {
$users = User::all();
$response->getBody()->write($users->toJson());
return $response->withHeader('Content-Type', 'application/json');
});
// 신규 생성 (POST)
$group->post('', function ($request, $response) {
$data = $request->getParsedBody();
$user = User::create($data);
$response->getBody()->write($user->toJson());
return $response->withStatus(201)->withHeader('Content-Type', 'application/json');
});
// 특정 데이터 수정 (PUT)
$group->put('/{id}', function ($request, $response, $args) {
$user = User::find($args['id']);
$user->update($request->getParsedBody());
$response->getBody()->write($user->toJson());
return $response->withHeader('Content-Type', 'application/json');
});
// 데이터 삭제 (DELETE)
$group->delete('/{id}', function ($request, $response, $args) {
User::destroy($args['id']);
return $response->withStatus(204); // 204 No Content (성공했으나 보낼 데이터 없음)
});
});