REST API голосовалок отдает неполную модель (без автора и иднтификатора опроса), взгляните, коллеги:
Пример
{
"name": "Нужно ли платить за недоделанную работу с ошибками?",
"question": "Ситуация следующая. Есть заказ на работу. Есть ТЗ. Есть программист-исполнитель и я-заказчик. Условия: 1. в ТЗ чётко прописано: дебаггинг лежит на программисте! 2. В переписке Я-заказчик, установил момент, когда будет выплачена первая половина оплаты, с чем исполнитель молча согласился (не отрицал). В чём проблема: а) сейчас, выполнив не все функции, названные для получения первой части оплаты; б) а также высылая 3-й раз версию программы, в которой около 25 ошибок!!! и несоответствий ТЗ!!!; разработчик требует денег и говорит \"дальше разрабатывать не буду, я вам недоверяю, давайте деньги\"... (могу предоставить образцы ТЗ и глючной программы, если нужно) Надеюсь, каждый ответ по-чести, без предвзятости своего положения.",
"concluded": true,
"createdOn": "2008-01-26T16:05:34.8400000",
"concludedOn": null,
"showVoters": true,
"showResult": true,
"allowedChoiceCount": 1,
"selfVoted": false,
"voteCount": 0,
"voteAllowed": false,
"addChoiceAllowed": false,
"choices": [
{
"id": 28303,
"choice": "Договор есть договор! Раз в ТЗ написано про дебаггинг и обговорён объём работ - исполнитель должен их выполнять!",
"votesCount": 0,
"share": 0,
"selfVoted": false
},
{
"id": 28304,
"choice": "Ошибки ерунда, исправит(?) потом. Фрилансеры народ пуганный, несчастный, давайте каждому деньги когда попросит!",
"votesCount": 0,
"share": 0,
"selfVoted": false
}
]
}
Сложно будет добавить поля автора и идентификатора опроса? Потому что непонятно кто создал и чей этот опрос. Модель без этих полей неполная.
И еще, в последний момент я заметил что URL https://rsdn.org/rs/poll/2005
⸻ Edited:
Еще один косяк заметил: поле concludedOn всегда равно null вместо даты завершения опроса, посмотрите мэппинг из DTO, возможно допустили ошибку там.
⸻ Выглядит сейчас как косяк проектирования архитектуры.
Есть еще один косяк, смотрите когда делаем запрос на удаленную голосовалку (например 4):
GET https://www.rsdn.org/rs/poll/4
HTTP/1.1 404 Not Found
{
"message": "Голосование не найдено"
}
но если вбить несуществующее голосование (на сегодня, например 999999):
GET https://www.rsdn.org/rs/poll/999999
HTTP/1.1 404 Not Found
{
"message": "Голосование не найдено"
}
В первом случае должен возвращатся статус HTTP/1.1 410 Gone, а во втором — HTTP/1.1 404 Not Found. То есть в первом случае, ресурс был раньше, но сейчас его нет. Потому что логику курсора сложно делать. Спасибо за понимание.
...<< Dementor 1.5.2 ✪ Lets Play a Game ⚀⚁⚂⚂⚄ — You won>>
Здравствуйте, r0nd, Вы писали:
R>В первом случае должен возвращатся статус HTTP/1.1 410 Gone, а во втором — HTTP/1.1 404 Not Found. То есть в первом случае, ресурс был раньше, но сейчас его нет. Потому что логику курсора сложно делать. Спасибо за понимание.
В текущей модели нет понятие удаленного голосования. Голосованием может быть удалено только админом и при этом оно физически удаляется из БД.
Здравствуйте, AndrewVK, Вы писали:
AVK>В текущей модели нет понятие удаленного голосования. Голосованием может быть удалено только админом и при этом оно физически удаляется из БД.
Хорошо, тогда как ты видешь, как определить идентификатор максимально доступного голосования. Например, смоделируем кейс — как узнать что через 1,2,3-N «исчезнувших» голосований есть еще доступные?
Здравствуйте, AndrewVK, Вы писали:
AVK>Зачем это узнавать? Тебе может нужен отсутствующий метод GET /rs/polls?
Да, это было бы круто и решило бы мою проблему. Если этот end-point будет с возможностью задать начальную позицию и количество отдаваемых записей (размер окна) — то вообще будет супер.
Здравствуйте, r0nd, Вы писали:
AVK>>Зачем это узнавать? Тебе может нужен отсутствующий метод GET /rs/polls? R>А что голосования с 4140 по 5130 отсутствуют? Потребность в наличии этого метода возросла.
С датой приключился косяк небольшой, дата передается в .NET-формате (/Date(1375183396613)/), а можно сконвертировать в формат 2002-09-18T15:30:05.9430000 (как в остальных запросах с сайта)?
Здравствуйте, r0nd, Вы писали:
R>С датой приключился косяк небольшой, дата передается в .NET-формате (/Date(1375183396613)/), а можно сконвертировать в формат 2002-09-18T15:30:05.9430000 (как в остальных запросах с сайта)?