programming/Web
REST API 메서드 예시 (GET/POST/PUT/PATCH)
euuuuuz:
2022. 8. 21. 00:55
1. GET -> 파라미터로 받아온 id로 해당되는 Cat 객체 찾기
router.get('/cats/:id', (req, res) => {
try {
const params = req.params;
const cats = Cat.find((cat)=> {
return cat.id === params.id
})
res.status(200).send({
success : true,
data: {
cats
}
})
}catch(error) {
res.status(400).send({
success: false,
error : error.message
})
}
})
2. POST -> 신규 객체 추가
router.post('/cats', (req, res) => {
try {
const data = req.body
console.log(data)
Cat.push(data)
res.status(200).send({
success: true,
data : {}
})
}
catch(error){
res.status(400).send({
success: false,
error: error.message
})
}
})
3. PUT -> 기존 객체 전체 갈아끼우기
router.put('/cats/:id', (req, res) => {
try {
const params = req.params;
const data = req.body;
let result
Cat.forEach((cat) => {
if(cat.id === params.id) {
cat = data;
result = cat;
}
})
res.status(200).send({
success : true,
data: {
cat : result
}
})
}catch(error) {
res.status(400).send({
success: false,
error : error.message
})
}
})
4. PATCH -> 기존 객체 부분 수정
구조분해 할당 모르면 난리 브루스 펼쳐지는 부분
cat = { ...cat : 기존에 있던 객체들을 펼쳐서 오브젝트에 담기 => ...data : 새로 변경할 키-속성 값을 덮어 쓰기 }
router.patch('/cats/:id', (req, res) => {
try {
const params = req.params;
const data = req.body;
let result
Cat.forEach((cat) => {
if(cat.id === params.id) {
cat = { ...cat, ...data}
result = cat;
}
})
res.status(200).send({
success : true,
data: {
cat : result
}
})
}catch(error) {
res.status(400).send({
success: false,
error : error.message
})
}
})