Ресурс - це те, з чим ви працюєте. Наприклад, якщо у вас є API для перемикання певної лампи, то ресурсом є сама лампа. Ресурс може бути фізичним (наприклад, лампа, особа) або нефізичним (наприклад, стаття, роль, рядок у базі даних), ресурс може бути первинним (наприклад, баланс) або похідним (наприклад, транзакція). Ресурс може посилатися на певну сутність (наприклад, п'яту лампу, встановлену в цій розетці лампи), або він може посилатися на роль, яка відображає різні об'єкти в різний час (наприклад, поточно встановлена лампа, лампа, встановлена 5 серпня 2008 р.) або він може зіставляти декілька об'єктів (наприклад, усі світильники будинку).
Представлення ресурсу - це спосіб, яким ваша служба повідомляє стан ресурсу, наприклад, XML, JSON, який представляє стан лампи.
У API REST API ідентифікується за допомогою єдиного ідентифікатора (наприклад, URI). Один ресурс може мати кілька представлень, в HTTP REST API ви зазвичай вказуєте представлення, яке ви хочете використовувати в заголовках типу HTTP-вмісту та Прийняти.
Однією з ключових реалізацій в архітектурі сервера клієнтів є те, що ви не можете донести ресурс до клієнта, і ви не повинні намагатися зробити його таким, як ви. Натомість в API REST ви віддалено маніпулюєте ресурсом, передаючи представлення ресурсу. Подумайте про це так: ви не FedEx лампою, щоб клієнт міг маніпулювати лампою безпосередньо, а скоріше сервіс створив XML / JSON / protobuf / CSV подання лампи, а клієнт надіслав представлення призначених маніпуляцій. Потім служба маніпулює фактичним станом лампи від імені клієнта або відхиляє запит, скажімо, якщо клієнт не уповноважений виконувати операції з лампою. Це може здатися очевидним / роздвоєним волоссям, але важливо зазначити, що оскільки представництво не є самим ресурсом,