티스토리 뷰
prisma
[prisma+nextjs] api(rest) 서비스에서 upsert(insert+update) 기능 활용하기 with PostMan
개발자 고포고 2022. 3. 19. 22:17반응형
[prisma+nextjs] api(rest) 서비스에서 upsert(insert+update) 기능 활용하기 with PostMan
prisma로 개발을 활용하다보니, update 시 값이 존재하지 않으면 insert하던 기능이 아쉬워서 조금 찾아보니,
upsert라는 기능이 있어서 비슷한 구현이 가능하였다.
test툴은 포스트맨을 사용하였다.
0.prisma 연결할 DB 구현
1.get 서비스 구현
2.post 서비스 구현
3.upsert 기능 구현
4.테스트 진행
#DB 정의
model HistoryContent {
id Int @id @default(autoincrement())
mediaID Int
period String
content String
Desc String?
}
#Get Post 서비스 구현
async function handler(
req: NextApiRequest,
res: NextApiResponse<ResponseType>
) {
if (req.method === "GET") {
const historyContent = await client.historyContent.findMany();
console.log(historyContent);
res.json({
ok: true,
historyContent,
});
} else if (req.method === "POST") {
console.log(req.body);
const { mediaID, period,content,id } = req.body;
console.log(` content:${period} , content:${content}, id:${id},mediaID:${mediaID}`);
const historyContent = await client.historyContent.upsert({
create:{
mediaID,
period,
content,
},
update:{
mediaID,
period,
content,
},
where:{
id:id
}
});
return res.status(200).json({ ok: true, historyContent });
}
}
export default withHandler({ methods: ["GET", "POST", "DELETE"], handler });
-보다시피 upsert는 where 절에 id의 존재여부에 따라서 존재 시 update 존재하지 않을 시 insert로 자동처리해주고있다, 제법 유용하게 로직처리를 진행 할 수 있다.
#테스트
테스트는 Postman을 활용하여, json형태의 파라미터를 사용하였다.
#prisma #nextjs #upsert #insert #post #update #react
반응형
'prisma' 카테고리의 다른 글
[PlanetScale/scoop/windows]윈도우에서 PlanetScale cli 설치(scoop) (0) | 2022.03.12 |
---|---|
[prisma/orm] prisma 설치 및 테스트 (0) | 2022.03.11 |
댓글
반응형