프로젝트

개인 프로젝트 API 디자인

Debin 2022. 5. 7.
반응형

API 디자인 책을 본격적으로 읽기 전에 본인이 생각한 API를 디자인해보려고 합니다.

먼저 HTTP 메소드와 URI를 정하겠습니다. 더 자세한 API 명세서는 차후에 더 자세히 작성하겠습니다.

사용자 입장에서 생각하면서 디자인!

User 관련 API

HTTP Method URI 경로 설명
GET /users/:userId 유저를 조회
POST /users 유저를 생성
PUT /users/:userId 유저 정보를 수정
PATCH /users/:userId 논리적 유저 삭제

Post 관련 API

HTTP Method URI 경로 설명
GET /posts 게시글 조회, 페이징을 사용할 예정
POST /posts 게시글 생성
PUT /posts/:postId 게시글 수정
PATCH  /posts/:postId 논리적 게시글 삭제
GET  /posts/:postId 게시글 1개 조회
POST /posts/:postId/like 게시글에 좋아요를 누르거나 취소

게시글에 좋아요를 누르고 취소하는 API의 HTTP Method를 정하는 것이 까다로웠는데 애매하면 POST로 일단 진행하라는 내용을 들어서 POST로 정했다.

Comment 관련 API

HTTP Method URI 경로 설명
POST /comments 댓글 생성
PUT /comments/:commentId 댓글 수정
DELETE /comments/:commentId 물리적 댓글 삭제
POST /comments/:commentId/like 댓글 좋아요 기능

댓글은 POST와 다르게 좋아요를 한 번 누르면 취소되지 않는다.

Alarm 관련 API

HTTP Method URI 경로 설명
GET /alarms 알람들을 조회한다.
DELETE /alarms/:alarmId 알람을 삭제한다. 

알람은 댓글을 달거나 게시글을 만들면 생성된다. 또 알람 수정은 진행할 수 없다. 

알람 삭제 API와 조회 API를 만들었다.

기타 API

HTTP Method URI 경로 설명
POST /login 로그인 진행 (JWT)
DELETE /logout 로그아웃 진행(JWT)

JWT를 사용할 예정이므로 POST와 DELETE 메서드로 정했다.

 

부족한 부분이 있으면 계속 추가할 예정이다. API 명세서도 이 포스팅에 차후에 작성하는 걸로..

 

//TO DO API 명세서

 

이상으로 포스팅을 마칩니다!

반응형

댓글