Ini berarti bahwa Anda mengaktifkan objek untuk diakses melalui beberapa cara. Dalam contoh Anda, Anda dapat membiarkan pengguna membuat, membaca, memperbarui atau menghapus objek (biasanya disingkat CRUD) menggunakan protokol HTTP melalui beberapa cara yang telah ditentukan untuk berinteraksi dengan objek Anda ( API ).
API itu dapat mematuhi seperangkat aturan - misalnya RESTful APIs menggunakan kata kerja HTTP untuk melakukan beberapa tindakan pada objek dan mereka mematuhi beberapa prinsip yang mengatakan bagaimana sumber daya harus diidentifikasi / diwakili dan bagaimana mereka harus dimanipulasi melalui representasi tersebut.
Dalam konteks aplikasi web, katakanlah Anda memiliki posting blog yang disimpan di database Anda. Anda ingin pengguna aplikasi Anda dapat melakukan sesuatu dengan posting tersebut. Mereka tidak harus selalu menggunakan situs web Anda , tetapi mungkin bisa menggunakan aplikasi mereka sendiri yang akan terhubung ke aplikasi Anda (misalnya program pembaca blog).
Sebagai pemilik aplikasi Anda, Anda dapat menentukan antarmuka tempat aplikasi Anda dapat diakses. Misalnya, Anda mungkin ingin menambahkan opsi bagi beberapa pengguna untuk membaca atau menulis posting blog. Antarmuka dapat terlihat seperti ini (untuk contoh API yang lebih kompleks, lihat definisi API Twitter ):
- Jika
GET /posts/{number} HTTP/1.1
diminta dari aplikasi web Anda, Anda akan memberikan representasi objek posting Anda dengan id {number}
dalam format yang telah ditentukan
Perhatikan bahwa Anda tidak menyediakan objek database aktual, maupun objek aplikasi Anda. Anda memberikan representasi objek Anda
- Jika a
POST /posts HTTP/1.1
dengan yang title={text1}&body={text2}
diposting ke aplikasi web Anda, Anda akan membuat objek posting baru berjudul {text1}
yang akan berisi {text2}
untuk tubuhnya, dan akan mengembalikan nilai id dari posting yang baru dibuat
Sekali lagi, Anda membiarkan pengguna memanipulasi representasi objek Anda. Pengguna tidak harus tahu bagaimana sebenarnya objek Anda (yang disarikan oleh antarmuka dari pengguna).
Mengekspos objek berarti menyediakan pengguna dengan antarmuka untuk mengakses dan memanipulasi objek Anda. Jika antarmuka tersebut memenuhi beberapa kondisi yang telah ditentukan sebelumnya mengenai representasi objek dan status aplikasi yang mengekspos objeknya, maka antarmuka tersebut dikatakan sebagai REST (atau RESTful) API.