Данный сервис предоставляет api для создания голосований с различными вариантами ответа, их редактирования, а так же
возможность проголосовать авторизированным пользователям. Взаимодействие с сервисом происходит посредством HTTP запросов.
Формат данных для отправки - JSON.
Запросы производить с вводом логина и пароля по BasicAuth.
Все изменения с голосованиями могут производить только создатели этих голосований.
- POST https://votingapi-flask.herokuapp.com/api/signUp - регистрация пользователя, данные для регистрации берутся из BasicAuth.
- POST https://votingapi-flask.herokuapp.com/api/voting/ - создаёт голосование. Данные сервису отправляются в формате JSON. Если вариантов ответа меньше двух, то голосование не будет создано.
{
'question': 'Текст вопроса',
'answers': [
#варианты ответа
{'text': 'ответ 1'},
{'text': 'ответ 2'},
{'text': 'ответ 3'}
]
}
- GET https://votingapi-flask.herokuapp.com/api/voting/ - возвращает список всех имеющихся голосований в следующем виде:
{
"_id":{
"$oid":"5ddc1029680b38aa9110f31f"
},
"question":"Where do you live?",
"answers":[
{
"text":"North",
"id":1
},
{
"text":"South",
"id":2
},
{
"text":"West",
"id":3
},
{
"text":"East",
"id":4
}
],
"author":"user2"
}
- POST https://votingapi-flask.herokuapp.com/api/voting/voting_id/ - добавить или изменить варианты ответов к голосованию.
Вместо voting_id подставить значение, которое хранится по ключу "$oid".
Отправлять данные на сервис в следующем виде:
{'answers': [
{'text': 'ответ1', 'id': 1},
{'text': 'ответ2'},
{'text': 'ответ3', 'id': 3}
]}
Если указывается id варианта ответа, то будет изменён текст существующего ответа.
При его отсутсвии будет добавлен новый вариант ответа к имеющимся.
- POST https://votingapi-flask.herokuapp.com/api/voting/voting_id/answer_id - пользователь голосует за выбранный вариант ответа в голосовании.
Вместо voting_id подставить значение, которое хранится по ключу "$oid", а вместо answer_id подставить id желаемого варианта ответа.
Если пользователь уже выбирал другой вариант ответа раньше, то его голос будет перезаписан. - GET https://votingapi-flask.herokuapp.com/api/voting/voting_id/ - возвращает JSON по конкретному голосованию в формате, который представлен выше.
Если пользователь уже проголосовал, то к имеющийся форме добавится количество голосов,
процентное соотношение для каждого голоса и id ответа, который выбрал этот пользователь в следующем виде:
{
"_id":{
"$oid":"5ddc0fce680b38aa9110f319"
},
"user_vote":2,
"author":"admin",
"num_vote":4,
"question":"Your favourite food",
"answers":[
{
"text":"Egg",
"percentage":50.0,
"id":1
},
{
"text":"Rice",
"percentage":25.0,
"id":2
},
{
"text":"Fish",
"percentage":25.0,
"id":3
}
]
}
- DELETE https://votingapi-flask.herokuapp.com/api/voting/voting_id/ - удалить голосование.
- DELETE https://votingapi-flask.herokuapp.com/api/voting/voting_id/answer_id - удалить вариант ответа в голосовании.
Если после удаления вариантов ответа будет меньше двух, то удаление не будет произведено.