-
Notifications
You must be signed in to change notification settings - Fork 0
11.10 목 회의록
Dohyeon Han edited this page Nov 10, 2022
·
8 revisions
API 주소 | API 유형 | 기능 | 그룹 | 비고 |
---|---|---|---|---|
/auth/logout | GET | 로그아웃 | 회원관리 (auth) | |
/auth/check | GET | 로그인 여부 확인 | 회원관리 (auth) | 현재 로그인이 되어 있는지 여부를 쿠키를 통해 확인 |
/auth/validate?id=ABC | GET | 아이디 중복 및 유효성 확인 | 회원관리 (auth) | 아이디는 쿼리스트링으로 전송, 아이디 유효성 및 중복 체크 |
/auth/register | POST | 회원가입 | 회원관리 (auth) | |
/auth/withdraw | DELETE | 회원 탈퇴 | 회원관리 (auth) | DB에서도 데이터 아예 삭제 |
/detail/edit | PUT | 상세프로필 수정 | 프로필 | |
/detail?id=ABC | GET | 상세프로필 열람 | 프로필 | 아이디나 고유값은 쿼리스트링으로 전송 |
/profile?stack=frontend&filter1=A&filter2=B&filter3=C&liked=true&pages=1 | GET | 간략한 프로필 리스트 열람 | 프로필 리스트 | 쿼리가 있으면 쿼리 내용에 맞춰 필터링, 쿼리가 없을 경우 전체 리스트 가져오기, 페이지네이션 적용 |
/like | POST | 좋아요 추가 | 좋아요 | 새로운 좋아요 정보가 DB에 저장되므로, POST |
/like | DELETE | 좋아요 삭제 | 좋아요 | 기존의 좋아요 정보가 DB에서 삭제되므로 DELETE |
- client 에서 바로 OAuth 인증 서버로 a 태그 이용
- 리디렉션이 깃허브 또는 구글에서 오므로, 데이터를 보낼 수 없어 쿠키만을 전달
- 성공 시
res.cookie(token).redirect('localhost:3000');
- 실패 시
res.status(401).redirect('localhost:3000').error(400);
-
아이디와 같은 내용물은 쿠키 안에 들어있는 토큰에서 읽어들이기
-
성공 시
res.status(200);
- 실패 시
res.status(400);
- 성공 시
res.status(200).send({
code: 200,
message: '인증 성공',
data: {
id: '123' // DB상의 식별자
username: 'limited-hyeon' // 회원가입 시 입력했던 ID
},
}
- 실패 시
res.status(401).send({
code: 401, // custom code
message: '로그인 실패'
});
- 성공 시
res.status(200).send({
code: 200,
message: '유효한 ID'
});
- 실패 시
res.status(400).send({
code: 400,
message: '유효하지 않은 ID'
});
- 보내는 데이터
{
username: 'limited-hyeon', // 입력한 유저 이름
interest: INTERESTS.FRONTEND, // 관심 분야, 상수값 => 프론트엔드, 백엔드에서 공용으로 사용
skills: [SKILLS.REACT, SKILLS.VUE] // 기술 스택, 상수값 => 프론트엔드, 백엔드에서 공용으로 사용
}
- 성공 시
res.status(200).send({
code: 200,
message: '회원가입 성공'
});
// 회원가입 성공 후 리디렉션 처리는 프론트엔드에서 분기를 나누어 진행
- 실패 시
res.status(400).send({
code: 400,
message: '회원가입 실패'
});
-
아이디와 같은 내용물은 쿠키 안에 들어있는 토큰에서 읽어들이기
-
성공 시
res.status(200).send({
code: 200,
message: '탈퇴 성공'
});
- 실패 시
res.status(400).send({
code: 400,
message: '탈퇴 실패'
});
- 보내는 데이터
{
username: 'limited-hyeon',
code: `console.log('hello world');\nreturn(0);`,
interest: INTERESTS.FRONTEND,
skills: [SKILLS.REACT, SKILLS.TYPESCRIPT],
worktype: '페어 프로그래밍, 잠실역 근처'
worktime: '새벽은 타협 가능하고 오후 1시부터 항상 비어있어요'
email: '[email protected]'
requirements: ['잠실사는사람만', '소통좋아해요'],
}
- 성공 시
res.status(200).send({
code: 200,
message: '정보 변경 성공'
});
- 실패 시
res.status(400).send({
code: 400,
message: '정보 변경 실패'
});
// 정보 변경 실패할 경우 프론트엔드에서 alert 띄워주기
- 성공 시
res.status(200).send({
code: 200,
message: '정보 변경 성공',
data: {
username: 'limited-hyeon',
code: `console.log('hello world');\nreturn(0);`,
interest: INTERESTS.FRONTEND,
skills: [SKILLS.REACT, SKILLS.TYPESCRIPT],
worktype: '페어 프로그래밍, 잠실역 근처'
worktime: '새벽은 타협 가능하고 오후 1시부터 항상 비어있어요'
email: '[email protected]'
requirements: ['잠실사는사람만', '소통좋아해요'],
liked: true
}
});
- 실패 시
res.status(400).send({
code: 400,
message: '정보 수신 실패'
})
// 정보 수신 실패할 경우 프론트엔드에서 alert 띄워주고, 리스트 화면으로 리디렉션
- 성공 시
res.status(200).send({
code: 200,
message: '정보 변경 성공',
data: {
lists: [
{
id: '', // 상세 페이지 조회 및 좋아요 용도
code: `console.log('hello world');\nreturn(0);`, // 프론트엔드에서 잘라서 사용
skills: [SKILLS.REACT, SKILLS.TYPESCRIPT],
requirements: ['잠실사는사람만', '소통좋아해요'],
liked: true
},
{
id: '',
code: `console.log('hello world');\nreturn(0);`,
skills: [SKILLS.REACT, SKILLS.TYPESCRIPT],
requirements: ['잠실사는사람만', '소통좋아해요'],
liked: true
},
...
]
}
});
- 실패 시
res.status(400).send({
code: 400,
message: '정보 수신 실패'
})
// 정보 수신 실패할 경우 프론트엔드에서 alert 띄워주기
- 보내는 데이터
{
likedId: '' // 좋아요한 상대방의 아이디
}
- 성공 시
res.status(200).send({
code: 200,
message: '좋아요 성공'
});
- 실패 시
res.status(400).send({
code: 400,
message: '좋아요 실패'
});
// 좋아요 실패할 경우 프론트엔드에서 alert 띄워주기?
- 보내는 데이터
{
likedId: '' // 좋아요한 상대방의 아이디
}
- 성공 시
res.status(200).send({
code: 200,
message: '좋아요 취소 성공'
});
- 실패 시
res.status(400).send({
code: 400,
message: '좋아요 취소 실패'
});
// 좋아요 실패할 경우 프론트엔드에서 alert 띄워주기?
- 피그마 내용 컴포넌트 단위로 묶기
- 왜 nest.js는 yarn berry만으로 안될까? node_modules 없이 사용할 수는 없나?
- 추후 구현 상의 편의와 프론트/백의 통일성을 위해 yarn berry에서 npm으로 변경
- 보일러 플레이트 및 eslint 설정
- 기획서 수정
- NoSQL? RDBMS? -> 내일 정하자
- 📃 기획서
- 📂 Backlog
- 📊 ERD, 폴더 구조
- 🗓️ 회의록