SaaS API
콘텐츠 검수 API
검수 단계 제출물 및 피드백 관리 API
콘텐츠 검수 API
검수 단계 제출물 및 피드백 관리 API입니다.
Base URL: /ai/influence/contents
인증 정보
| 항목 | 값 |
|---|---|
| 인증 필요 | 예 |
| 인증 방식 | JWT Bearer Token |
엔드포인트 목록
제출물 관리
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /ai/influence/contents/{itemId} | 제출물 조회 (ID) | 필요 |
GET | /ai/influence/contents/review/{reviewId}/type/{itemType} | 제출물 조회 (검수라운드+타입) | 필요 |
GET | /ai/influence/contents/review/{reviewId} | 검수 라운드별 제출물 목록 | 필요 |
POST | /ai/influence/contents | 제출물 신규 생성 | 필요 |
PUT | /ai/influence/contents/{itemId} | 제출물 수정 | 필요 |
PUT | /ai/influence/contents/{itemId}/editor | 에디터 상태 저장 | 필요 |
PATCH | /ai/influence/contents/{itemId}/submit | 제출 상태 변경 | 필요 |
피드백
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
PATCH | /ai/influence/contents/feedbacks/{feedbackId}/resolve | 피드백 해결 상태 변경 | 필요 |
히스토리
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /ai/influence/contents/{itemId}/history | 제출물 히스토리 조회 | 필요 |
GET | /ai/influence/contents/{itemId}/history/compare | 버전 비교 | 필요 |
최종 제작물
| 메서드 | 경로 | 설명 | 인증 |
|---|---|---|---|
GET | /ai/influence/contents/{applicationId}/final-submission | 최종 제작물 조회 | 필요 |
POST | /ai/influence/contents/{applicationId}/final-submission | 최종 제작물 저장/제출 | 필요 |
API 상세
제출물 조회 (ID)
제출물 ID로 제출물 상세를 조회합니다. editorState, 피드백 목록을 포함합니다.
HTTP 요청
GET /ai/influence/contents/{itemId}
Authorization: Bearer {access_token}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
itemId | long | 예 | 제출물 ID |
제출물 조회 (검수라운드+타입)
검수 라운드 ID와 제출물 타입으로 조회합니다. 이전에 저장한 내용이 있으면 불러옵니다.
HTTP 요청
GET /ai/influence/contents/review/{reviewId}/type/{itemType}
Authorization: Bearer {access_token}Path Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
reviewId | long | 예 | 검수 라운드 ID |
itemType | SubmissionItemType | 예 | 제출물 타입 |
제출물 타입 (SubmissionItemType)
| 타입 | 설명 |
|---|---|
VIDEO | 영상 |
SCRIPT | 스크립트 |
HASHTAG | 해시태그 |
CAPTION | 캡션 |
검수 라운드별 제출물 목록 조회
검수 라운드에서 제출해야 할 모든 타입 목록과 각 타입별 저장된 내용을 조회합니다.
HTTP 요청
GET /ai/influence/contents/review/{reviewId}
Authorization: Bearer {access_token}응답
성공 응답 (200 OK)
{
"status": 200,
"code": null,
"message": "성공",
"data": {
"reviewId": 1,
"requiredTypes": ["VIDEO", "SCRIPT", "HASHTAG"],
"items": [
{
"itemId": 1,
"itemType": "VIDEO",
"status": "SUBMITTED",
"editorState": {...}
}
],
"requiredKeywords": ["#브랜드명", "#협찬"]
}
}제출물 신규 생성
새 제출물을 생성합니다.
HTTP 요청
POST /ai/influence/contents
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"reviewId": 1,
"itemType": "VIDEO",
"editorState": {...},
"isSubmit": false
}Request Body 스키마
| 필드명 | 타입 | 필수 | 설명 |
|---|---|---|---|
reviewId | long | 예 | 검수 라운드 ID |
itemType | string | 예 | 제출물 타입 |
editorState | object | 아니오 | Lexical 에디터 상태 JSON |
isSubmit | boolean | 예 | true면 제출, false면 임시저장 |
제출물 수정
기존 제출물을 수정합니다.
HTTP 요청
PUT /ai/influence/contents/{itemId}
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"editorState": {...},
"isSubmit": true
}에디터 상태 자동 저장
Lexical 에디터 상태(JSON)만 저장합니다. 자동 저장용입니다.
HTTP 요청
PUT /ai/influence/contents/{itemId}/editor
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"editorState": {...}
}제출 상태 변경
저장 상태를 제출로 변경하거나 제출을 취소합니다.
HTTP 요청
PATCH /ai/influence/contents/{itemId}/submit
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"isSubmit": true
}피드백 해결 상태 변경
피드백의 해결 완료 상태를 토글합니다.
HTTP 요청
PATCH /ai/influence/contents/feedbacks/{feedbackId}/resolve
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"isResolved": true
}제출물 히스토리 조회
제출물의 수정 히스토리를 조회합니다. 현재 버전과 모든 이전 버전 목록을 반환합니다.
HTTP 요청
GET /ai/influence/contents/{itemId}/history
Authorization: Bearer {access_token}버전 비교
두 버전 간의 변경 내용을 비교합니다. afterVersion이 없으면 현재 버전과 비교합니다.
HTTP 요청
GET /ai/influence/contents/{itemId}/history/compare?beforeVersion={before}&afterVersion={after}
Authorization: Bearer {access_token}Query Parameters
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
beforeVersion | int | 예 | 비교 기준 버전 |
afterVersion | int | 아니오 | 비교 대상 버전 (없으면 현재 버전) |
최종 제작물 조회
업로드/정산 단계에서 최종 제작물을 조회합니다.
HTTP 요청
GET /ai/influence/contents/{applicationId}/final-submission
Authorization: Bearer {access_token}최종 제작물 저장/제출
업로드/정산 단계에서 최종 제작물을 저장하거나 제출합니다.
HTTP 요청
POST /ai/influence/contents/{applicationId}/final-submission
Authorization: Bearer {access_token}
Content-Type: application/jsonRequest Body
{
"uploadLink": "https://instagram.com/p/...",
"partnershipCode": "ABC123",
"files": [
{
"fileUrl": "https://s3.../video.mp4",
"fileName": "final_video.mp4",
"fileType": "VIDEO"
}
],
"isSubmit": true
}파일 업로드는 별도 S3 업로드 API를 사용한 후 URL을 전달합니다.
사용 예시
제출물 생성
curl -X POST https://api.glowb.io/ai/influence/contents \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"reviewId": 1,
"itemType": "SCRIPT",
"editorState": {"root": {...}},
"isSubmit": false
}'