Skip to content

Minivote API Documentation

Byeong Gyu Choi edited this page Nov 18, 2017 · 8 revisions

Index

API 페이지의 맨 처음입니다.

GET - 127.0.0.1:8000/poll/

현재 개설되어 있는 모든 투표의 이름들을 JSON 형식으로 반환합니다.
응답 예시

[
    {
        "title": "가장 좋아하는 운동은?"
    },
    {
        "title": "오늘 뭐 먹지?"
    }
]

Command Line 에서 확인하기

cURL 이 설치되어 있다고 가정합니다!

$ curl --user USER:PASSWD -i 127.0.0.1:8000/poll/

또는, httpie 를 통하여 http 요청을 보낼 수도 있습니다. (설치는 여기 를 참고하세요!) 이런 경우에는,

$ http -a USER:PASSWD http://127.0.0.1:8000/poll/

로 확인하시면 되겠습니다.

Creating a poll

POST - 127.0.0.1:8000/poll/create/

투표 생성 요청을 해당 URL 로 보내시면 됩니다. 반드시 POST 로 보내셔야 합니다!
Request 의 body 는 반드시 해당 형식을 따라서, JSON 으로 말아서 넣어 주세요.

{
    "poll": "가장 좋아하는 운동은?",
    "choices": [
        "축구",
        "농구",
        "야구"
    ]
}

Updating a poll

POST - 127.0.0.1:8000/poll/update/

투표 현황의 반영 요청을 해당 URL 로 보내시면 됩니다. 반드시 POST 로 보내주세요!
Request 의 body 는 밑의 형식대로, JSON 으로 말아서 넣어 주세요.

{
    "poll": "가장 좋아하는 운동은?",
    "choices": [
      {
        "name": "축구",
        "selected": false
      },
      {
        "name": "야구",
        "selected": true
      }
    ]
}

Viewing Result

GET - 127.0.0.1:8000/poll/result/

결과 조회 api 는 GET 요청과 POST 요청 둘 다 지원합니다.
GET 요청을 보낼 시, 전체 투표에 대한 결과를, POST 요청을 투표 제목과 같이 보낼 시 해당 투표에 대한 결과만을 반환합니다.

GET 요청에 대한 결과 응답은 이렇습니다.

[
    {
        "title": "가장 좋아하는 운동은?",
        "selections": [
            {
                "body": "축구",
                "num_people": 0
            },
            {
                "body": "농구",
                "num_people": 0
            },
            {
                "body": "야구",
                "num_people": 1
            }
        ]
    },
    {
        "title": "오늘 뭐 먹지?",
        "selections": [
            {
                "body": "치킨",
                "num_people": 0
            },
            {
                "body": "피자",
                "num_people": 1
            },
            {
                "body": "족발",
                "num_people": 0
            },
            {
                "body": "보쌈",
                "num_people": 0
            }
        ]
    }
]

POST - 127.0.0.1:8000/poll/result/

밑의 예시와 같이, 투표의 제목을 JSON 으로 말아서 넣어 보내시면, 해당 제목과 일치하는 투표의 결과만 리턴합니다. (아무것도 없으면 당연히 400 에러를 뿜을거에요)

{
    "title": "가장 좋아하는 운동은?"    
}

결과 응답은 이런 식으로 나옵니다.

{
    "title": "가장 좋아하는 운동은?",
    "selections": [
        {
            "body": "축구",
            "num_people": 0
        },
        {
            "body": "농구",
            "num_people": 0
        },
        {
            "body": "야구",
            "num_people": 1
        }
    ]
}

Command Line 에서 보내기

cURL 을 사용하여, 다음 형식으로 http 요청을 보내시면 결과를 받으실 수 있습니다!

$ curl -X POST \
  http://127.0.0.1:8000/poll/URL/ \
  --user USER:PASSWD \
  -H 'content-type: application/json' \
  -d '{
	"key": value
  }'