-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathresult.json
More file actions
1 lines (1 loc) · 7.22 KB
/
result.json
File metadata and controls
1 lines (1 loc) · 7.22 KB
1
{"openapi":"3.1.0","info":{"title":"Codify Result API","description":"Codify Result API 명세서","version":"1.0.0"},"servers":[{"url":"/"}],"paths":{"/api/result/assignments/{assignmentId}/save":{"post":{"tags":["result-controller"],"summary":"표절 결과 저장","description":"표절 검사 결과를 저장합니다.\n- assignmentId: 과제 ID (Path Variable)\n- week: 주차 정보 (Request Parameter)\n- USER-UUID: 사용자 UUID (Request Header)\n- plagiarize: 표절 여부 (true: 표절, false: 표절 아님)\n- student1, student2: 비교 대상 학생들의 정보\n","operationId":"saveResult","parameters":[{"name":"USER-UUID","in":"header","required":true,"schema":{"type":"string"}},{"name":"assignmentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"week","in":"query","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveResultRequestDto"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/result/topology":{"get":{"tags":["result-controller"],"summary":"유사도 네트워크 토폴로지 조회","description":"특정 과제와 주차의 유사도 네트워크 토폴로지를 반환합니다.\n- assignmentId: 과제 ID\n- week: 주차 정보\n- 각 학생을 노드로, 유사도를 엣지로 하는 네트워크 구조 반환\n","operationId":"getTopology","parameters":[{"name":"USER-UUID","in":"header","required":true,"schema":{"type":"string"}},{"name":"assignmentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"week","in":"query","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/TopologyResponseDto"}}}}}}},"/api/result/graph":{"get":{"tags":["result-controller"],"operationId":"resultGraph","parameters":[{"name":"USER-UUID","in":"header","required":true,"schema":{"type":"string"}},{"name":"assignmentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"week","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultGraphDto"}}}}}}},"/api/result/assignments/{assignmentId}/judge":{"get":{"tags":["result-controller"],"operationId":"judgePlagiarism","parameters":[{"name":"USER-UUID","in":"header","required":true,"schema":{"type":"string"}},{"name":"assignmentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentFromId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentToId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"week","in":"query","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PlagiarismJudgeResponseDto"}}}}}}},"/api/result/assignments/{assignmentId}/compare":{"get":{"tags":["result-controller"],"summary":"두 학생의 제출물 비교 결과 조회","description":"두 학생의 제출물을 비교한 결과를 반환합니다.\n- studentFromId, studentToId: 비교할 학생 ID\n- week: 주차 정보\n- S3에서 실제 코드 파일과 함께 표절 의심라인 반환\n","operationId":"compareStudentSubmissions","parameters":[{"name":"USER-UUID","in":"header","required":true,"schema":{"type":"string"}},{"name":"assignmentId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentFromId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"studentToId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"week","in":"query","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/CompareResponseDto"}}}}}}}},"components":{"schemas":{"SaveResultRequestDto":{"type":"object","properties":{"plagiarize":{"type":"boolean"},"student1":{"$ref":"#/components/schemas/StudentInfo"},"student2":{"$ref":"#/components/schemas/StudentInfo"}}},"StudentInfo":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"fileName":{"type":"string"},"submittedTime":{"type":"string"}}},"HistoryDto":{"type":"object","properties":{"submittedFrom":{"type":"string","format":"date-time"},"submittedTo":{"type":"string","format":"date-time"}}},"RelatedFileDto":{"type":"object","properties":{"fileName":{"type":"string"},"similarity":{"type":"number","format":"double"}}},"TopologyEdgeDto":{"type":"object","properties":{"id":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"value":{"type":"number","format":"double"},"comparedFiles":{"type":"string"},"histories":{"type":"array","items":{"$ref":"#/components/schemas/HistoryDto"}}}},"TopologyNodeDto":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"fileName":{"type":"string"},"submittedAt":{"type":"string","format":"date-time"},"relatedFiles":{"type":"array","items":{"$ref":"#/components/schemas/RelatedFileDto"}}}},"TopologyResponseDto":{"type":"object","properties":{"nodes":{"type":"array","items":{"$ref":"#/components/schemas/TopologyNodeDto"}},"edges":{"type":"array","items":{"$ref":"#/components/schemas/TopologyEdgeDto"}}}},"FilterPairsGroupDto":{"type":"object","properties":{"aboveThreshold":{"type":"array","items":{"$ref":"#/components/schemas/FilteredPairsDto"}},"belowThreshold":{"type":"array","items":{"$ref":"#/components/schemas/FilteredPairsDto"}}}},"FilterSummaryDto":{"type":"object","properties":{"total":{"type":"integer","format":"int32"},"aboveThreshold":{"type":"integer","format":"int32"},"belowThreshold":{"type":"integer","format":"int32"},"threshold":{"type":"number","format":"double"}}},"FilteredPairsDto":{"type":"object","properties":{"fromId":{"type":"integer","format":"int64"},"toId":{"type":"integer","format":"int64"},"similarity":{"type":"number","format":"double"}}},"ResultGraphDto":{"type":"object","properties":{"nodes":{"type":"array","items":{"$ref":"#/components/schemas/StudentResponseDto"}},"filterSummary":{"$ref":"#/components/schemas/FilterSummaryDto"},"filterPairs":{"$ref":"#/components/schemas/FilterPairsGroupDto"}}},"StudentResponseDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"label":{"type":"string"}}},"PlagiarismJudgeResponseDto":{"type":"object","properties":{"similarity":{"type":"integer","format":"int32"},"student1":{"$ref":"#/components/schemas/StudentInfoDto"},"student2":{"$ref":"#/components/schemas/StudentInfoDto"}}},"StudentInfoDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"submittedTime":{"type":"string"}}},"CompareResponseDto":{"type":"object","properties":{"student1":{"$ref":"#/components/schemas/StudentCompareDto"},"student2":{"$ref":"#/components/schemas/StudentCompareDto"}}},"StudentCompareDto":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"fileName":{"type":"string"},"submissionTime":{"type":"string"},"code":{"type":"array","items":{"type":"string"}},"lines":{"type":"array","items":{"type":"integer","format":"int32"}}}}}}}