1. 설계 목적

본 프로젝트의 API는 사용자 신고 등록, AI 탐지 결과 저장, 관리자 대응, 실시간 알림, 비교분석 기능을 하나의 흐름으로 연결하기 위해 설계하였다. 전체 흐름은 사용자 입력 → 신고 등록 → 파일 업로드 → AI 분석 → 결과 저장 → 관리자 알림 → 비교분석 순서로 구성된다.


2. 전체 API 흐름

사용자 요청 → Flask API → Service Layer → Repository/Model → MySQL 저장 → 응답 반환
로그인/권한 → 신고 등록 → 파일 저장 → AI 탐지 → 결과 저장 → 알림 발생 → 관리자 처리 → 비교분석

3. API 분류

3-1. 인증 / 사용자 API

사용자 로그인, 로그아웃, 권한 신청 등 사용자 인증과 권한 관리를 담당한다. 로그인과 권한 구분 기능이 프로젝트 기본 기능으로 정의되어 있다.

3-2. 신고 API

사용자가 이미지/영상과 함께 신고를 등록하고, 신고 목록/상세를 조회하는 기능을 담당한다. 신고 기능에는 이미지 업로드, 영상 업로드, 카메라 촬영, 신고 내용 저장이 포함된다.

3-3. AI 탐지 API

업로드된 파일에 대해 객체 탐지를 수행하고, 탐지 결과를 DB에 저장한다. 탐지 결과는 Bounding Box, confidence, 프레임 정보 등을 포함한다.

3-4. 관리자 API

관리자 대시보드, 전체 신고 관리, 상태 변경, 실시간 알림 확인 등 운영 관리 기능을 담당한다. 관리자 기능에는 전체 신고 리스트 조회, 상세 보기, 상태 변경이 포함된다.

3-5. 비교분석 API

특정 신고를 기준으로 여러 AI 모델을 실행하고, 실행 이력과 상세 결과를 조회한다. 비교분석은 신고 상세/신고 리스트에서 실행되고, 결과는 별도 테이블에 저장된다.


4. 주요 API 설계