개인프로젝트

API 설계

자바걸 2024. 4. 7. 16:31

모운완이라는 웬 어플리케이션 서버를 개발하고 운영하는것이 목적이다!

서버의  API스펙을 어던 규칙에 따라 정의할 것인지 나타내는 API설계원칙을 먼저 작성해보고자 한다.

HTTP API로 설계하고자 한다. 

API하면  REST를 많이 들어봤지만 REST의 원칙을 모두 지키는것이 힘들다고 판단하였다.

그리고 꼭 API가 REST일 필요는 없는것이다.

 

또한 직렬화 포맷은 JSON을 사용하려고한다. 키밸류 매핑과 배열표현이 커버되고 여러가지 데이터 타입을 받을 수 있기 때문이다. 또한 프론트단과 주고받을때 대부분 JSON을 쓴다고 알고있었따..!

 

구현에 들어가기에 앞서 API스펙을 간단히 한두줄로 정리해보고자 한다!

그전에 API설계를 하려면 앞전에 정리해두었던 기능명세를 보아야한다.

 

📌모운완 요구사항 정의서

더보기

📌모운완 요구사항 정의서

요구사항ID 요구사항명 기능ID 기능명 상세기능 필수데이터 선택데이터 권한
CLUB_01
클럽 생성
CLUB01_CREATE01 운동클럽 모임 생성 운동클럽을 생성한다 클럽 이름, 클럽 운동 종목, 인원   클럽 관리자만 가능
CLUB01_CREATE02 운동종목 등록 클럽의 운동 종목을 선택한다 클럽 운동 종목   클럽 관리자만 가능
클럽 공개
CLUB02_OPEN01 클럽 공개 생성된 클럽을 공개로 돌린다.(비공개가 디폴트)     클럽 관리자만 가능
CLUB02_OPEN02 클럽 비공개 클럽을 드래프트로 전환한다.     클럽 관리자만 가능
클럽 종료 CLUB03_CLOSE01 클럽 종료 클럽을 종료한다.     클럽 관리자만 가능
클럽 인원모집 CLUB04_ADDMEMBER01 클럽 인원모집 생성된 클럽에 인원모집을 시작한다.     클럽 관리자만 가능
클럽 경로변경 CLUB05_PATH01 클럽 접속 경로 변경 클럽이 기존 접속 경로를 변경한다. 경로주소   클럽 관리자만 가능
클럽 삭제 CLUB06_DELETE01 클럽 삭제 종료된 클럽을 삭제한다.     클럽 관리자만 가능
클럽 가입
CLUB07_JOIN01 클럽 가입 신청 인원 모집을 하는 클럽에 참여를 신청한다.      
CLUB07_JOIN02 클럽 가입 수락 가입 신청한 멤버를 클럽 가입에 수락한다.     클럽 관리자만 가능
CLUB07_JOIN03 클럽 가입 거절 가입 신청한 멤버를 클럽 가입에 거절한다.     클럽 관리자만 가능
클럽 탈퇴 CLUB08_DROP01 클럽 탈퇴 가입한 클럽에서 탈퇴한다.      
MEM_01
로그인
MEM01_LOGIN01 로그인 기능 우리 기능을 사용하기 위해 로그인 필수 ID, 비밀번호    
MEM01_LOGIN02 아이디 찾기 이메일 주소와 이름을 입력하면 해당 아이디를 보여준다. 아이디, 이메일주소    
MEM01_LOGIN03 비밀번호 재설정 받은 이메일로 비밀번호를 재설정할 수 있다. 아이디, 이메일주소    
MEM_02
회원가입
MEM02_SIGNUP01 회원가입 회원가입을 한다. 이름, 비밀번호, 이메일 주소    
MEM02_SIGNUP02 이메일 인증 이메일 인증 확인으로 회원가입을 완료한다. 이메일주소    
MEM_03 로그아웃 MEM03_LOGOUT01 로그아웃 로그아웃 한다.      
MEM_04
프로필
MEM04_PROFILE01 프로필 이미지 등록 계정의 프로필 이미지를 등록한다 프로필 이미지    
MEM04_PROFILE02 프로필 이미지 삭제 계정의 프로필 이미지를 삭제한다      
MEM04_PROFILE03 프로필 정보 입력 계정의 프로필 정보를 입력한다      
NOTICE_01
알림설정 NOTICE01_SET01 알림 방법 설정 웹알림으로 받을지 이메일알림으로 받을지 알림 방법을 선택한다      
알림 목록조회 NOTICE02_LIST01 알림 목록 조회 알림 목록을 조회한다.      
알림 구분 NOTICE03_SORT01 알림 구분 읽은 알림과 읽지 않은 알림을 구분한다.      
클럽 관련 알림
NOTICE03_CLUB01 클럽 변경사항 알림 설정 참여중인 클럽의 변경사항의 알림을 설정한다      
NOTICE03_CLUB02 클럽 가입신청 알림 설정 가입신청한 클럽의 신청 여부 확인 알림을 설정한다      
GATHER_01
모임
GATHER01_LIST01 모임 조회 개설된 모임 목록을 조회한다      
GATHER02_OPEN01 모임 개설 모임을 개설한다     클럽 관리자만 가능
GATHER03_MODIFIY01 모임 내용 수정 개설한 모임 내용을 수정한다     클럽 관리자만 가능
GATHER04_CANCEL01 개설한 모임 취소 개설한 모임을 취소한다     클럽 관리자만 가능
GATHER_02
모임참여
GATHER05_JOIN01 모임 참여신청 모임에 참여 신청을 한다      
GATHER05_JOIN02 모임 참여취소 참여신청한 모임에 참여를 취소한다      
GATHER05_JOIN03 모임 참여신청 수락 참여신청 멤버를 참여에 수락한다     클럽 관리자만 가능
GATHER05_JOIN04 모임 참여신청 거절 참여신청 멤버를 참여에 수락한다     클럽 관리자만 가능
GATHER05_JOIN05 모임 참여 여부 체크 모임 참여여부를 체크한다     클럽 관리자만 가능
CATEGORY_01
관심운동
CATEGORY01_REGIST01 관심운동 종목을 등록한다 관심운동 종목을 등록한다      
CATEGORY02_DELETE01 관심운동 종목을 삭제한다 관심운동 종목을 삭제한다      

 


✔️API 스펙 설계

 

https://www.notion.so/moongs-/API-2e765b32033b4bc1b1fe570d66cb4a60?pvs=4#2c9854d09a314e678a91659b004ae807