Исках да видя дали има консенсус относно това къде да се запази логиката за показване на харесвани/нехаресвани бутони, в клиентския изглед или в заявката за база данни. Прокарването на логиката към самата заявка я поддържа чиста и последователна, но ще изисква всяка заявка за списъка с публикации на началната страница да бъде персонализирана и да не позволява кеширане на тази заявка.
Настройка: MongoDb база данни (или евентуално neo4j), node.js API и сървър за приложения, iOS мобилен клиент и уебсайт. Повечето публикации могат да имат дузина харесвания, но някои ще имат стотици харесвания. Повечето потребители ще са харесали 50 - 300 публикации, като няколко потребители ще харесат хиляди публикации.
Моят случай на използване: Потребителят преглежда списък с скорошни популярни публикации и вижда бутон „харесвам“ или „не харесвам“ до всяка публикация в зависимост от това дали вече е харесал публикацията.
Решение-
Подход 1: подайте идентификатора на потребителя в заявката към базата данни и върнете списък с най-популярните публикации със свойството isLiked, изчислено в заявката.
Подход 2: Клиентското приложение извлича и синхронизира харесваните идентификационни номера за този потребител и изгледът определя дали да покаже бутона „харесвам“ или „не харесвам“ за даден списък с публикации. Списъците с публикации могат да бъдат кеширани на сървъра или в cdn и не изисква персонализиране.
Подход 3? Има ли по-ефективен начин да го направите на останалия слой на api услугата?