| API 이름 | Method | URL | 요청 파라미터 | 요청 예시 | 응답 코드 | 응답 예시 | 설명 | 담당자 |
|---|---|---|---|---|---|---|---|---|
| 회원가입 | POST | /api/user/signup | Body | json { "email": "test@example.com", "password": "1234", "rePassword": "1234", "nickname": "한라봉", "profileImage": "<https://cdn.example.com/profile.png>" } |
201, 400, 409 | 201: 회원가입 성공 | 이메일·비밀번호 기반 신규 회원 등록 | @익명 |
| 로그인 | POST | /api/user/login | Body | json { "email": "test@example.com", "password": "1234" } |
200, 401 | json { "accessToken": "jwt-token", "tokenType": "Bearer" } |
로그인 후 JWT 토큰 발급 | @익명 |
| 내 정보 조회 | GET | /api/user/myinfo | Header(JWT) | 없음 | 200, 401 | json { "userId": 5, "email": "test@example.com", "nickname": "한라봉", "profileImage": "url" } |
로그인 사용자 정보 조회 | @익명 |
| 내 정보 수정 | PATCH | /api/user/myinfo | Body | json { "password": "5678", "rePassword": "5678", "nickname": "새닉네임", "profileImage": "url" } |
204, 400, 401 | 204 No Content | 비밀번호·닉네임·프로필 이미지 수정 | @익명 |
| API 이름 | Method | URL | 요청 파라미터 | 요청 예시 | 응답 코드 | 응답 예시 | 설명 | 담당자 |
|---|---|---|---|---|---|---|---|---|
| 기업 목록 조회 | GET | /api/companies | Query(page, size) | 없음 | 200 | PageResponse<CompanyResponse> | 페이지네이션 기반 기업 목록 조회 | @익명 |
| 기업 상세 조회 | GET | /api/companies/{companyId} | Path(companyId) | /api/companies/1 | 200, 404 | CompanyResponse | 특정 기업 상세 정보 조회 | @익명 |
| 기업 등록 | POST | /api/companies | Body | json { "name": "SEGA", "industry": "게임", "city": "도쿄", "website": "url", "description": "설명", "companyImage": "url" } |
200, 400, 401 | CompanyResponse | 신규 기업 정보 등록 | @익명 |
| 기업 수정 | PUT | /api/companies/{companyId} | Path + Body | json { "name": "SEGA", "industry": "게임", "city": "오사카" } |
200, 400, 401, 403, 404 | CompanyResponse | 기존 기업 정보 수정 | @익명 |
| API 이름 | Method | URL | 요청 파라미터 | 요청 예시 | 응답 코드 | 응답 예시 | 설명 | 담당자 |
|---|---|---|---|---|---|---|---|---|
| 기업 분석 목록 조회 | GET | /api/companies/{companyId}/detail | Path + Query | page, size, keyword | 200, 404 | PageResponse<DetailResponse> | 기업 분석 글 목록 조회 | @익명 |
| 기업 분석 상세 조회 | GET | /api/companies/{companyId}/detail/{detailId} | Path | 없음 | 200, 404 | DetailResponse | 기업 분석 상세 조회 | @익명 |
| 기업 분석 등록 | POST | /api/companies/{companyId}/detail | Body | json { "title": "기업 분석", "position": "백엔드", "content": "내용" } |
201, 400, 401 | DetailResponse | 기업 분석 글 작성 | @익명 |
| 기업 분석 수정 | PUT | /api/companies/{companyId}/detail/{detailId} | Body | 수정 JSON | 200, 403, 404 | DetailResponse | 기업 분석 수정 | @익명 |
| 기업 분석 삭제 | DELETE | /api/companies/{companyId}/detail/{detailId} | Path | 없음 | 204 | 없음 | 기업 분석 삭제 | @익명 |
| 내 기업 분석 조회 | GET | /api/companies/{companyId}/detail/me | Query | page, size, keyword | 200 | PageResponse<DetailResponse> | 로그인 사용자의 분석 글 조회 | @익명 |
| API 이름 | Method | URL | 요청 파라미터 | 요청 예시 | 응답 코드 | 응답 예시 | 설명 | 담당자 |
|---|---|---|---|---|---|---|---|---|
| 기업 후기 목록 조회 | GET | /api/companies/{companyId}/review | Path | 없음 | 200 | PageResponse<ReviewResponse> | 기업 후기 목록 조회 | @익명 |
| 기업 후기 상세 조회 | GET | /api/companies/{companyId}/review/{reviewId} | Path | 없음 | 200, 404 | ReviewResponse | 후기 상세 조회 | @익명 |
| 기업 후기 등록 | POST | /api/companies/{companyId}/review | Body | json { "title": "면접 후기", "position": "백엔드", "stage": "1차", "result": "합격", "content": "내용" } |
201, 400, 401 | ReviewResponse | 기업 후기 등록 | @익명 |
| 기업 후기 수정 | PUT | /api/companies/{companyId}/review/{reviewId} | Body | 수정 JSON | 200, 403, 404 | ReviewResponse | 기업 후기 수정 | @익명 |
| 기업 후기 삭제 | DELETE | /api/companies/{companyId}/review/{reviewId} | Path | 없음 | 204 | 없음 | 기업 후기 삭제 | @익명 |
| 내 기업 후기 조회 | GET | /api/companies/{companyId}/review/me | Query | page, size, keyword | 200 | PageResponse<ReviewResponse> | 로그인 사용자 후기 조회 | @익명 |
| API 이름 | Method | URL | 요청 파라미터 | 요청 예시 | 응답 코드 | 응답 예시 | 설명 | 담당자 |
|---|---|---|---|---|---|---|---|---|
| 이미지 업로드 | POST | /api/files/image | multipart/form-data | file | 200, 400 | json { "imageUrl": "url" } |
이미지 업로드 | @익명 |
| 이미지 수정 | PUT | /api/files/image | Query + multipart | imageUrl, file | 200, 400 | json { "imageUrl": "new-url" } |
기존 이미지 교체 | @익명 |
| 이미지 삭제 | DELETE | /api/files/image | Query(imageUrl) | 없음 | 204, 400 | 없음 | 이미지 삭제 | @익명 |