Skip to content

API 명세

Seongho Yun edited this page Nov 17, 2022 · 1 revision

User api

  • 로그인 과정 중 github 리다이렉트

    • 경로: /api/users/redirect
    • 메서드: get
    • 응답: 301 / redirect : github 인증 페이지
  • 로그인

    • 경로: /api/users/login

    • 메서드: get

    • 파라미터:

      • query string
      {
        code: string
      }
    • 응답: 201

      • 쿠키
      {
        accessToken: string,
        refreshToken: string
      }
  • 로그아웃

    • 경로: /api/users/logout
    • 메서드: delete
    • 응답 : 204
      • accessToken, refreshToken 쿠키 제거
  • 사용자 정보

    • 경로: /api/users/

    • 메서드: get

    • 응답: 200

      • JSON
      {
      	userID: string,
      	userName: string
      }

설문지 api

  • 빈 설문지 생성

    • 경로: /api/forms/

    • 메서드: post

    • 파라미터:

      • JSON
      {
        userID: number
      }
    • 응답: 201

      • JSON
      {
        formID: string
      }
  • 설문지 존재 확인

    • 경로: /api/forms/:id

    • 메서드: get

    • 파라미터:

      • path variable
      {
        id: string
      }
    • 응답: 200

      • JSON
      {
        id: string,
        userID: number,
        title: string,
        description: string,
        category: string,
        question: Array<Question>,
        acceptResponse: boolean,
        onBoard: boolean
      }
      
      // Question Interface
      {
        id: number,
        page: number,
        type: string,
        essential: boolean,
        etcAdded: boolean,
        title: string,
        option: Array<string>
      }
  • 설문지 수정

    • 경로: /api/forms/:id

    • 메서드: PATCH

    • 파라미터:

      • path variable
      {
        id: string
      }
      • JSON
      {
        title?: string,
        description?: string,
        category?: string,
        question?: Array<Question>,
        acceptResponse?: boolean,
        onBoard?: boolean,
      }
    • 응답: 200

  • 설문지 리스트 호출

    • 경로: /api/forms/:page

    • 메서드: GET

    • 파라미터:

      • path variable
      {
        size: number
      }
    • 응답: 200

      {
        form: Array<FormOnList>
      }
      
      // FormOnList Interface
      {
        _id: string,
        title: string,
        acceptResponse: boolean,
        response: number,
        createdAt: string,
        onBoard: boolean,
        category: string
      }
  • 설문지 삭제

    • 경로: /api/forms/:id

    • 메서드: DELETE

    • 파라미터:

      • path varibale
      {
        id: string
      }
    • 응답: 204

설문지 응답 api

  • 응답 전송

    • 경로: /api/responses

    • 메서드: POST

    • 파라미터:

      • JSON
      {
        userID?: number,
        formID: string,
        response: Array<Response>
      }
      
      // Response Interface
      {
        id: string,
        answer: Array<string> | string
      }
    • 응답: 201

      • JSON
      {
        responseID: string
      }
  • 응답 수정

    • 경로: /api/responses

    • 메서드: PATCH

    • 파라미터:

      • JSON
      {
        userID?: number,
        formID: string,
        response: Array<Response>
      }
    • 응답: 200

  • 중복 응답 방지를 위한 응답 조회

    • 경로: /api/responses/:userID/:formID/

    • 메서드: GET

    • 파라미터:

      • path variable
      {
      	userID?: number,
      	formID: string
      }
    • 응답: 200

      • JSON
      {
        responsed: boolean
      }
  • 수정 전 지난 응답 조회

    • 경로: /api/responses/:responseID

    • 메서드: GET

    • 파라미터:

      • path variable
      {
      	responseID: string, 
      }
    • 응답: 200

      • JSON
      {
        userID?: number,
        formID: string,
        response: Array<Response>
      }
  • 응답으로 설문 결과 조회

    • 경로: /api/responses/result/:formID

    • 메서드: GET

    • 파라미터:

      • path variable
      {
        formID: string
      }
    • 응답: 200

      • JSON
      {
        response: Array<Response>
      }

게시판 api

  • 게시판에서의 설문지 리스트 호출
    • 경로: /api/board/

    • 메서드: GET

    • 파라미터:

      • query string
      {
      	title?: string,
      	category?: string,
      	page?: number
      }
    • 응답: 200

      • JSON
      {
        form: Array<FormOnBoard>
      }
      
      // FormOnBoard Interface
      {
        formID: string,
        title: string,
        category: string
      }

Home

규칙

프로젝트 계획

스프린트 회의록

데일리 스크럼

week 1
week 2
week 3
week 4
week 5
week 6

회고록

데모

Problem & Solving

Clone this wiki locally