Является ли состояние чтения неотъемлемой частью ресурса или это просто средство отслеживания на стороне сервера?Хотели бы читатели получить списки всех документов, которые «прочитаны» или «непрочитаны»?Смогут ли пользователи пометить документ как «непрочитанный», если они загрузят его, но решат прочитать его позже?
Если это только на стороне сервера, тогда можно пометить кортеж {user,resource}
как прочитанный на каждомПОЛУЧИТЬ запрос.Если статус чтения для каждого пользователя является частью ресурса, вам нужно сопоставляемое клиентом сопоставление «многие ко многим» между пользователями и ресурсами, и либо пара отображается (читается), либо нет (не читается).В этом случае я предлагаю использовать новый ресурс для представления этого статуса и разрешить клиенту помещать логическое значение true / false в этот URI ресурса.Будь то user@host/resource/read
или /user/{user}/resource/read
или какой-либо другой, это не имеет значения.
Если вы хотите, чтобы этот флаг устанавливался автоматически, а ваш клиент был веб-браузером, вам нужно будет использовать AJAXвыполнить второй запрос после загрузки документа (и, возможно, вкладка была видна в течение определенного истекшего периода).