next.js
앱의 API endpoint를 함수 하나로 생성할 수 있다.export default function handler(req, res) {
//...
}
API Endpoint?
- API의 특정 진입 지점
- base URL 뒤에 붙는 특정 키워드를 의미
- ex:)
${baseURL}/about
에서 /about이 엔드포인트- 각각의 엔드포인트를 통해 각각 다른 응답을 기대할 수 있다.
pages/api
디렉토리 내의 모든 파일은 /api/*
에 매핑되며 페이지 대신 API Endpoint로 처리된다.req.cookies
: 요청에서 보낸 쿠키가 포함된 객체req.query
: 요청에서 보낸 쿼리가 포함된 객체req.body
: content-type으로 Http body로 보내는 데이터들이 포함req.status(code)
: 상태 코드를 설정하는 함수req.json(body)
: JSON 응답을 보내는 함수 body
는 직렬화 가능한 객체여야 함req.send(body)
: JSON 응답을 보내는 함수 body
는 string, object, bufferres.redirect([status, ] path)
: 지정된 경로로 redirection, status
의 default 값은 307(임시 리디렉션)// pages/api/hello.js => http:localhost:3000/api/hello
export default function handler(req, res) {
res.status(200).json({ text: 'Hello' });
}
getStaticProps
와 getStaticPaths
에서 API Route를 불러오면 안된다.CORS headrs
를 지정하지 않는다. (즉, 동일한 출처를 의미)