Ответ 1
tl; dr: это нормально, чтобы назначить etags ресурсу, который содержит "коллекцию", но это зависит от приложения для управления идентификацией/изменением элементов в этой коллекции при определении действительный etag.
Ресурс в архитектурном стиле REST не означает, что это отдельный элемент или коллекция. Он просто представляет состояние приложения в заданной точке рабочего процесса. Ресурс будет содержать описательные данные и, надеюсь, ссылки на возможные последующие шаги в этот момент рабочего процесса. Рабочий процесс может быть таким же простым, как получить статус заказа или сложный элемент заказа на сайте электронной коммерции с возможностью отмены заказа.
etag - это механизм определения того, является ли конкретное состояние (ресурс) актуальным или нет. Присвоение etag ресурсу, который возвращает коллекцию данных, означает, что ваше приложение идентифицирует это состояние элементов коллекции в этой точке и, если что-либо в этих элементах изменится, значение предыдущего этага больше не будет действительным. Это зависит от вашего приложения, чтобы определить, когда меняются элементы коллекции и как идентифицировать отдельные элементы. Другими словами, etags применяются к ресурсам, но не к отдельным компонентам данного ресурса.