SOOJLE
수즐 커뮤니티
수즐 커뮤니티
  • SOOJLE Document
  • 프로젝트 요약
  • Untitled
  • 프로젝트 개요
    • 프로젝트 소개
    • 추진 배경 및 필요성
    • 프로젝트 내용
      • 기능적 요구사항
      • 비기능적 요구사항
    • 개발환경 및 팀 구성
    • 워크플로우
      • 계획 수립 & 설계
      • 데이터 수집 및 정규화
      • 인공지능 개발
      • 서비스 모듈 개발
      • 성능 평가 및 보고
    • 프로젝트 예산 내역
  • 사전조사 & 의사결정
    • 사전조사
      • 재학생 대상 사전조사
      • 수집 URL 대상 목록
        • 세종대학교 직할
        • 세종대학교 학과
        • 공식 공지사항
        • 세종대 평생교육원
        • 외부 웹사이트
      • 학습 모델 사전조사
        • LSA - 잠재 의미 분석
        • LDA - 잠재 디리클레 할당
        • Word2Vec - 워드투벡터
        • FastText - 패스트텍스트
    • 의사결정
      • 사용자 인증 방식 의사결정
      • 데이터베이스 의사결정
        • MySQL vs MongoDB 성능 분석
      • 토픽별 의사결정
      • 부가 기능 의사 결정
  • 프로젝트 설계
    • 시스템 구조 설계
    • 핵심 기능 설계
      • 데이터 크롤러 설계
      • 게시물 토픽 정의 및 분류
      • 사용자 관심분야 측정
      • 뉴스피드 설계
        • 사용자-문서 유사도(Recommendation Score)
        • FaS (관심 분야 및 유사도 측정 - 추가)
        • 토픽 뉴스피드 목록
      • 검색 알고리즘 설계
        • 검색 알고리즘 1차 설계
        • 검색 알고리즘 1차 개선안
        • 검색 알고리즘 2차 설계
    • 요구사항 목록
      • DB 요구사항
      • 기능 요구사항
      • 품질 요구사항
      • 관리 요구사항
  • DB
    • 구조 설계
    • 테이블 명세
  • 데이터 크롤러
    • 데이터 크롤러 개요
    • 크롤링 URL 선정
    • 크롤러 구현을 위한 사전조사
    • 크롤러 개발 과정
      • 크롤러 프로그램 설계
      • 크롤러 규격화
      • 크롤러 정규화
      • 데이터 정제 과정
      • 에러 핸들러 구현
      • 배포 환경 이식을 위한 Porting
    • Issue & Exception
    • 결과 보고
  • 인공지능 개발
    • 인공지능 개발 개요
    • NLP 스터디
      • Bag of Words(BoW)
      • Document Term Matrix(DTM)
      • TF-IDF(Term Frequency-Inverse Document Frequency)
      • 문서 유사도(Document Similarity)
    • 데이터 전처리 과정
    • 개발 과정
      • 토크나이저 구현
      • LDA 모델 학습 및 구현
    • LDA 학습 모델링
      • 1차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 2차 파라미터 튜닝 결과 (NUM_TOPICS)
      • 3차 파라미터 튜닝 결과 (NUM_TOPICS)
      • NUM_TOPICS 파라미터 의사결정
      • 4차 파라미터 튜닝 결과 (PASESS, ITERATION)
      • 최종 학습 모델 명세
    • Word2Vec(FastText) 학습 모델링
    • Issue & Exception
    • 성능 분석 결과
  • BackEnd
    • 서버 구축 및 배포
      • SOOJLE 서버 구조
      • 상용 서버 (UWSGI + NGINX) 구축
      • HTTPS 서버 구현
    • API 문서 개요
    • API 목록
      • Analysis
      • Auth API
      • Newsfeed API
      • Post API
      • Search API
      • Admin API
    • 세종 Auth API
    • 통계 기능 설계
    • Issue & Exception
    • 성능 분석 결과
  • FRONTEND
    • 프론트엔드 설계 개요
    • 디자인 설계 의사결정
      • 디자인 컨셉 및 기능 정의
      • 컴포넌트 디자인
      • Logo Variation
    • 화면 흐름도
    • 페이지 UI 명세
      • Main Page
      • Header
      • Footer
      • Mobile Control Bar
      • Login Page
      • Timeline Page
      • Menu Page
      • Hyperlink Icons Page
      • Search Component & Mobile Search Modal
      • Search Page
      • Post Block
      • Snackbar
  • 프로그램 배포
    • 프로그램 개요
    • 시스템 아키텍쳐
    • 주요 기능 및 명세
    • 프로그램 테스트
    • 구현 결과물 배포
  • 마무리
    • References
  • SOOJLE AI
  • SEJONG AUTH
  • IML Tokenizer
  • SOOJLE Crawler
  • SOOJLE Frontend
  • SOOJLE Backend
Powered by GitBook
On this page

Was this helpful?

  1. BackEnd

API 문서 개요

본 항목은 Soojle Backend API 명세이다.

Soojle 서비스를 구현하기 위해 이루고 있는 API 문서의 설계이다. API의 종류는 크게 다음과 같이 나눌 수 있다.

  • 메인

  • 사용자

  • 뉴스피드

  • 게시글

  • 검색

  • 관리자

API 자체는 그룹 지어져 있으나, 여러 페이지에서 여러 API를 교차적으로 사용한다.

데이터 포맷은 JSON이며, 모든 API 결과는 다음과 같은 공통적인 특징을 가지고 있다.

요청에 대한 응답을 성공했을 경우 (200)

모든 요청에 대한 응답의 성공 여부는 result Key 값을 통해 확인할 수 있다. 단 여기서의 "success"가 반드시 의도대로의 실행을 수행했다는 뜻은 아니며, 요청에 대한 처리는 완료했지만 입력 조건이 충족되지 않아 API 자체는 실행되지 않았을 수도 있다.

단, 실행되지 않더라도 사용자가 원하는 명령 수행에는 문제가 없을 경우, 이것을 "success"로 취급한다.

{
    "result":"success",
    ...
    ...
}

입력 조건이 충족되지 않아 적절한 액션을 취할 수 없을 경우 (200)

API 기능을 수행하기 위한 조건이 충족되지 않아 실패한 경우이다. 이 경우에도 result Key 값을 통해 그 요인을 확인할 수 있으며, "success" 이외의 값을 확인하게 된다.

{
    "result":"원인"
    // Password Incorrect
    // Answer not matched
}

허용되지 않는 접근 방식 (400, 403, ...)

조건 자체가 통상적인 수단으로는 얻을 수 없는 입력 값일 경우, 해당 결과를 반환한다. 해당 에러를 반환하는 요인에는 존재하지 않는 데이터를 대상으로 하거나, 유효하지 않는 토큰으로 인증 요청을 할 경우 등이 있다.

{
    "result":"원인"
    // bad request
    // Admin Only
}

내부 서버 에러 (500, 503,...)

API가 정상적으로 작동하지 않으며, 유효한 입력 값을 넣어도 정상적인 결과를 반환받을 수 없다.

{
    "result":"fail"
}
PreviousHTTPS 서버 구현NextAPI 목록

Last updated 5 years ago

Was this helpful?