Це означає, що ви дозволяєте отримувати доступ до об'єктів якимись засобами. У своїх прикладах ви можете дозволити користувачам створювати, читати, оновлювати або видаляти об'єкти (як правило, скорочуються до CRUD) за допомогою протоколу HTTP деяким заздалегідь визначеним способом взаємодії з вашими об'єктами ( API ).
Цей API може дотримуватися набору правил - наприклад, API RESTful використовують дієслова HTTP для виконання деяких дій над об'єктами, і вони дотримуються певних принципів, які говорять про те, як ресурси повинні бути ідентифіковані / представлені та як ними маніпулювати через ці представлення.
Скажімо, у контексті веб-програми, у вашій базі даних зберігаються повідомлення блогу. Ви хочете, щоб користувачі вашої програми мали змогу щось робити з цими публікаціями. Вони не обов'язково повинні використовувати ваш веб-сайт , але, можливо, вони можуть використовувати власний додаток, який підключатиметься до вашої програми (наприклад, програма для читання блогів).
Як власник вашої програми, ви можете визначити інтерфейс, через який можна отримати доступ до вашої програми. Наприклад, ви можете додати можливість деяким користувачам читати або писати повідомлення в блозі. Інтерфейс може виглядати приблизно так (для прикладу більш складного API див . Визначення API Twitter ):
- Якщо у
GET /posts/{number} HTTP/1.1
вашій веб-програмі запитується а, ви надасте представлення вашого поштового об’єкта з ідентифікатором {number}
у заздалегідь визначеному форматі
Зауважте, що ви не надаєте фактичний об’єкт бази даних, а також об’єкт програми. Ви надаєте представлення свого об'єкта
- Якщо a
POST /posts HTTP/1.1
з a title={text1}&body={text2}
розміщено у вашій веб-програмі, ви створите новий об’єкт публікації з назвою, {text1}
який буде містити {text2}
його тіло, і поверне значення id новоствореної публікації
Знову ж, ви дозволяєте користувачеві маніпулювати уявленнями ваших об'єктів. Користувачеві не потрібно знати, як виглядають ваші об'єкти насправді (тобто це відлучається інтерфейсом від користувача).
Викриття об'єкта означає надання користувачеві інтерфейсу для доступу та маніпулювання вашими об’єктами. Якщо цей інтерфейс задовольняв деяким додатковим заздалегідь заданим умовам щодо представлення об'єкта та станів програми, яка виставляє його об'єкти, тоді цей інтерфейс вважається API REST (або RESTful).