Response 응답 타입
컨트롤러에서 다양한 형태의 응답을 반환하는 방법입니다.
1
JSON 응답
public function jsonResponse(): ResponseInterface
{
$data = ['status' => 'ok', 'count' => 42];
return $this->response
->setStatusCode(200)
->setJSON($data);
// Content-Type: application/json 자동 설정
}
2
HTTP 상태 코드
// 200 OK (기본값)
return $this->response->setJSON($data);
// 201 Created
return $this->response->setStatusCode(201)->setJSON($data);
// 400 Bad Request
return $this->response->setStatusCode(400)->setJSON(['error' => '잘못된 요청']);
// 401 Unauthorized
return $this->response->setStatusCode(401)->setJSON(['error' => '인증 필요']);
// 404 Not Found
return $this->response->setStatusCode(404)->setJSON(['error' => '데이터 없음']);
// 422 Validation Error
return $this->response->setStatusCode(422)->setJSON(['errors' => $this->validator->getErrors()]);
3
헤더 & 쿠키 설정
// 커스텀 헤더
return $this->response
->setHeader('X-Custom-Header', 'value')
->setJSON($data);
// 쿠키 설정
$this->response->setCookie('remember_me', $token, 30 * DAY);
// 쿠키 삭제
$this->response->deleteCookie('remember_me');
// Content-Type 직접 지정
return $this->response
->setContentType('text/csv')
->setBody($csvContent);