profile

코드잇

2023. 4. 28
Color Survey API 문서

코드잇 실습용 서버 호스트

코드잇 실습용 서버 호스트입니다.

 learn.codeit.kr

설문 (Surveys)

사용자가 제출한 MBTI와 선호 색상 데이터를 저장합니다.

엔드포인트

   POST /api/color-surveys
    GET /api/color-surveys
    GET /api/color-surveys/:id
 DELETE /api/color-surveys/:id
  PATCH /api/color-surveys/:id

설문 객체


속성


id: integer
설문 객체에 대한 고유 식별자.
mbti: string
제출자의 MBTI. 16개의 MBTI만 허용하고 대소문자는 구별하지 않습니다.
colorCode: string
제출자의 선호 색상 코드. HEX 코드만 허용하고 # 유무와 대소문자를 구별하지 않습니다.
password: string
설문에 대한 비밀번호. 숫자로 4개로 이뤄진 문자열만 허용합니다. 설문을 삭제, 또는 수정할 때 사용합니다. 읽기 전용 속성이기 때문에 한 번 값이 정해지면 바꿀 수 없습니다.
createdAt: integer
객체가 생성된 시점에 대한 UNIX 타임스탬프.
updatedAt: integer
객체가 수정된 시점에 대한 UNIX 타임스탬프.

설문 객체 예시

{
  "id": 14,
  "mbti": "ENFP",
  "colorCode": "#CA6952",
  "password": "0123",
  "createdAt": 1667969077,
  "updatedAt": 1667969077
}

설문 생성


엔드포인트

POST /api/color-surveys

파라미터로 넘겨준 값들을 사용해서 새로운 설문 객체를 생성합니다.

바디 파라미터


mbti: string 필수
제출자의 MBTI. 16개의 MBTI만 허용하고 대소문자는 구별하지 않습니다.
colorCode: string 필수
제출자의 선호 색상 코드. HEX 코드만 허용하고 # 유무와 대소문자를 구별하지 않습니다.
password: string 필수
설문에 대한 비밀번호. 숫자로 4개로 이뤄진 문자열만 허용합니다. 설문을 삭제, 또는 수정할 때 사용합니다. 읽기 전용 속성이기 때문에 한 번 값이 정해지면 바꿀 수 없습니다.

리턴 내용


생성에 성공할 시, 설문 객체가 리턴됩니다. 실패 시, 에러 상태 코드와 메세지가 리턴됩니다.

리퀘스트 예시

POST https://learn.codeit.kr/api/color-surveys
Content-Type: application/json

{
  "mbti": "ENFP",
  "colorCode": "#CA6952",
  "password": "1234"
}

리스폰스 예시

상태 코드: 201
{
  "id": 14,
  "mbti": "ENFP",
  "colorCode": "#CA6952",
  "createdAt": 1667969077,
  "updatedAt": 1667969077
}

여러 설문 조회


엔드포인트

GET /api/color-surveys

설문 객체 전체 목록을 최신 순서로 리턴합니다.

쿼리 스트링 파라미터


mbti: string
제출자의 MBTI. 16개의 MBTI만 허용하고 대소문자는 구별하지 않습니다. 쿼리 스트링 파라미터로 보내면 해당 MBTI에 대한 설문들만 모아서 확인할 수 있습니다.
limit: integer
리턴받기 원하는 설문 객체 수. 값을 전달하지 않으면 10개의 객체가 리턴됩니다. 10~100 사이 정수만 허용됩니다.
offset: integer
가장 앞 객체부터 건너뛰고 싶은 객체 수. 값을 전달하지 않으면 건너뛰지 않습니다.

리턴 내용


유효한 mbti, limit을 제공했을 시, 설문 객체 목록이 리턴됩니다. 실패 시, 에러 상태 코드와 메세지가 리턴됩니다.

count: integer
서버에 저장된 총 설문 객체 수.
next: string
페이지네이션에서 다음 페이지에 해당하는 주소.
previous: string
페이지네이션에서 이전 페이지에 해당하는 주소.
results: array of objects
리턴된 설문 객체 목록.

리퀘스트 예시

GET https://learn.codeit.kr/api/color-surveys?offset=10&limit=10&mbti=ISTJ

리스폰스 예시

상태 코드: 200
{
  "count": 42,
  "next": "https://learn.codeit.kr/api/color-surveys/?offset=20&limit=10&mbti=ISTJ",
  "previous": null,
  "results": [
    {
      "colorCode": "#CA6952",
      "createdAt": 1668752533000,
      "updatedAt": 1668752533000,
      "id": 42,
      "mbti": "ISTJ"
    },
    {
      "colorCode": "#CA6952",
      "createdAt": 1668752162000,
      "updatedAt": 1668752162000,
      "id": 41,
      "mbti": "ISTJ"
    },
    {
      "colorCode": "#33A560",
      "createdAt": 1668331218000,
      "updatedAt": 1668331218000,
      "id": 40,
      "mbti": "ISTJ"
    },
    ...
  ]
}

설문 조회


엔드포인트

GET /api/color-surveys/:id

URL 파라미터 :id 에 해당하는 설문 객체를 조회합니다.

파라미터


없음.

리턴 내용


유효한 고유 식별자를 제공했을 시 설문 객체가 리턴됩니다. 실패 시, 에러 상태 코드와 메세지가 리턴됩니다.

리퀘스트 예시

GET https://learn.codeit.kr/api/color-surveys/14

리스폰스 예시

상태 코드: 200
{
  "id": 14,
  "mbti": "ENFP",
  "colorCode": "#CA6952",
  "createdAt": 1667969077,
  "updatedAt": 1667973104
}

설문 삭제


엔드포인트

DELETE /api/color-surveys/:id

URL 파라미터 :id 에 해당하는 설문 객체를 삭제합니다.

바디 파라미터


password: string 필수
설문에 대한 비밀번호. 고유 식별자로 특정짓는 설문의 비밀번호와 일치해야 삭제할 수 있습니다.

리턴 내용


유효한 고유 식별자와 비밀번호를 제공했을 시, 삭제된 설문 객체가 리턴됩니다. 실패 시, 에러 상태 코드와 메세지가 리턴됩니다.

리퀘스트 예시

DELETE https://learn.codeit.kr/api/color-surveys/14
Content-Type: application/json

{
  "password": "0123",
}

리스폰스 예시

상태 코드: 204
{
  "id": 14,
  "mbti": "ENFP",
  "colorCode": "#CA6952",
  "createdAt": 1667969077,
  "updatedAt": 1667973104
}

설문 수정


엔드포인트

PATCH /api/color-surveys/:id

파라미터로 넘겨준 값들을 사용해서 URL 파라미터 :id 에 해당하는 설문 객체를 수정합니다. 제공되지 않은 선택 필드는 수정되지 않습니다.

바디 파라미터


mbti: string
제출자의 MBTI. 16개의 MBTI만 허용하고 대소문자는 구별하지 않습니다.
colorCode: string
제출자의 선호 색상 코드. HEX 코드만 허용하고 # 유무와 대소문자를 구별하지 않습니다.
password: string 필수
설문에 대한 비밀번호. 숫자로 4개로 이뤄진 문자열만 허용합니다. 고유 식별자로 특정짓는 설문의 비밀번호와 일치해야 수정할 수 있습니다.

리턴 내용


유효한 고유 식별자와 비밀번호를 제공했을 시, 수정된 설문 객체가 리턴됩니다. 실패 시, 에러 상태 코드와 메세지가 리턴됩니다.

리퀘스트 예시

PATCH https://learn.codeit.kr/api/color-surveys/14
Content-Type: application/json

{
  "mbti": "ISTJ",
  "colorCode": "#000000",
  "password": "0123",
}

리스폰스 예시

상태 코드: 200
{
  "id": 14,
  "mbti": "ISTJ",
  "colorCode": "#000000",
  "createdAt": 1667969077,
  "updatedAt": 1667973104
}

이 튜토리얼은 어땠나요?

(주) 코드잇

대표KANG YOUNG HOON, 이윤수

개인정보보호책임자강영훈

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇