You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Base URL: https://api.inform.today/api/v1 공통 응답 규격: 모든 API는 { success, data, error } 형태의 ApiResponse<T>로 응답합니다. 인증: Authorization: Bearer {access_token} 헤더 사용
인증 (Auth)
Method
Endpoint
설명
인증
POST
/auth/login/google
구글 OAuth2 로그인 및 JWT 발급
❌
POST
/auth/refresh
Access/Refresh Token 재발급 (RTR 방식)
❌
POST
/auth/logout
로그아웃 (Redis RT 즉시 삭제)
✅
사용자 (User)
Method
Endpoint
설명
인증
GET
/users/me
내 정보 조회 (학과 상세 포함)
✅
PATCH
/users/me/major
소속 학과 수정
✅
DELETE
/users/me
회원 탈퇴 (연관 데이터 일괄 삭제)
✅
학교 공지사항 (School Articles)
Method
Endpoint
설명
인증
GET
/school_articles
목록 조회 (카테고리·제공처 다중 필터, 키워드 검색, 페이징)
선택
GET
/school_articles/{id}
상세 조회
선택
GET
/school_articles/popular
인기 공지 조회 (북마크 수 기준)
선택
정렬 우선순위: 진행 중(OPEN) → 마감 임박(ENDING_SOON) → 시작 예정(UPCOMING)
동아리 공지사항 (Club Articles)
Method
Endpoint
설명
인증
GET
/club_articles
목록 조회 (동아리 필터, 키워드 검색, 페이징)
❌
GET
/club_articles/{id}
상세 조회
❌
캘린더 (Calendar)
Method
Endpoint
설명
인증
GET
/calendar/notices
월간 일정 조회 (year, month, 카테고리 필터, 내 북마크만 보기)
선택
북마크 (Bookmark)
Method
Endpoint
설명
인증
POST
/bookmarks
북마크 토글 (등록/해제)
✅
GET
/bookmarks/school
북마크한 학교 공지 목록 조회
✅
DELETE
/bookmarks/school/all
북마크 전체 삭제
✅
DELETE
/bookmarks/school/{article_id}
북마크 개별 삭제
✅
알림 (Notification)
Method
Endpoint
설명
인증
GET
/notifications
알림 목록 조회 (최신순)
✅
GET
/notifications/unread-count
읽지 않은 알림 개수 조회
✅
PATCH
/notifications/{id}/read
개별 알림 읽음 처리
✅
PATCH
/notifications/read-all
모든 알림 일괄 읽음 처리
✅
공통 (Common)
Method
Endpoint
설명
인증
GET
/vendors
제공처 목록 조회 (type=SCHOOL|CLUB 필터 지원, 캐싱 적용)
❌
GET
/categories
카테고리 목록 조회 (캐싱 적용)
❌
🚦 시작하기
사전 요구사항
Java 21 이상
MariaDB
Redis
설치
# 저장소 클론
git clone https://github.com/Team-Alimi/IN-FORM_Backend.git
# 디렉토리 이동cd inform-backend
# 설정 파일 생성
cp src/main/resources/application.yaml.example src/main/resources/application.yaml
# application.yaml에 DB, Redis, JWT, Google OAuth2 정보 입력