pages
내에 api
디렉토리를 만든 후 api로 사용할 파일 생성.
import { NextApiRequest, NextApiResponse } from "next";
export default async function api(
req: NextApiRequest,
res: NextApiResponse
) {
res.status(200/401/...);
}
fetch("api/url", {
method: 'POST', // GET, POST, PUT, DELETE 등
body: JSON.stringify(data), // data can be `string` or {object}!
headers:{
'Content-Type': 'application/json'
}
})
headers
를 명시하지 않으면 api
응답에서 원하는 데이터를 받지 못할 수 있음.
// headers (x)
export default async function api(
req: NextApiRequest,
res: NextApiResponse
) {
console.log(req.body); // {"email":"adads@email.com"}
console.log(req.body.email); // undefined
}
//headers (o)
export default async function api(
req: NextApiRequest,
res: NextApiResponse
) {
console.log(req.body); // { email: 'adads@email.com' }
console.log(req.body.email); // adads@email.com
}
next.js
에서 api
를 작성할 때는 함수 자체를 export default
해야 한다.
무슨 말인지 이해 못하고 적어뒀다. 고차함수(Higher Order Function(HOF)) 개념이란다. 나중에 이해하거든 다시 정리할 것.
추가 상태코드 참고 MDN http 상태코드