Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Что может пойти не так в приведенном случае, так это то, что если ваш пользователь использует сервис с двух или трех устройств, то, в случае когда одно из них устанавливает последний прочитанный элемент, то остальные не смогут загрузить элементы ленты, прочитанные на других устройствах ранее.
Независимость от состояния означает, что данные, возвращаемые определенным вызовом API, не должны зависеть от вызовов, сделанных ранее.
Другое дело, что каждое сообщение должно помечаться меткой прочитано/не_прочитано, тогда загрузятся все сообщения, а непрочитанные будут выделены в интерфейсе клиента.
планшет GET /posts?last=70, ответ: {{tweet71},{tweet72},{tweet100}}десктоп GET /posts?last=10 ответ:{{tweet11},...,{tweet120}}планшет PUT /posts?lastread=100планшет GET /posts?new, ответ: {{tweet70,read:1},{tweet71:read:0},{tweet72,read:0},{tweet100,read:0}}
десктоп GET /posts?new ответ:{{tweet100,read:1},...,{tweet120,read:0}}То есть если телефон автоматически синхронизирует ленту, но я ее не стану смотреть, то на десктопе, я этих твитов уже не увижу?
/posts?newможет и не быть потребности
/posts?last=70&markasread=0 например решит проблему
RESTful API для сервера – делаем правильно (Часть 1)