Apa itu API dan bagaimana penerapannya?

 API (Application Programming Interface)

API merupakan software interface yang terdiri atas kumpulan instruksi yang disimpan dalam bentuk library dan menjelaskan bagaimana agar suatu software dapat berinteraksi dengan software lain. Penjelasan ini dapat dicontohkan dengan analogi apabila akan dibangun suatu rumah. Dengan menyewa kontraktor yang dapat menangani bagian yang berbeda, pemilik rumah dapat memberikan tugas yang perlu dilakukan oleh kontraktor tanpa harus mengetahui bagaimana cara kontraktor menyelesaikan pekerjaan tersebut. Dari analogi tersebut, rumah merupakan software yang akan dibuat, dan kontraktor merupakan API yang mengerjakan bagian tertentu dari software tersebut tanpa harus diketahui bagaimana prosedur dalam melakukan pekerjaan tersebut. 



Secara struktural, API merupakan spesifikasi dari suatu data structure, objects, functions, beserta parameter-parameter yang diperlukan untuk mengakses resource dari aplikasi tersebut. Seluruh spesifikasi tersebut membentuk suatu interface yang dimiliki oleh aplikasi untuk berkomunikasi dengan aplikasi lain, dan API dapat digunakan dengan berbagai bahasa programming, ataupun hanya dengan menggunakan URL (Uniform Resource Locator) yang telah disediakan oleh suatu website. API dapat diklasifikasikan menjadi beberapa kategori, hal ini dilihat dari abstraksi apa yang dideskripsikan di dalam sistem. Kategori-kategori ini diantaranya:

REST (Representational State Transfer)

 REST (Representational State Transfer) merupakan jenis arsitektur yang terdapat pada web untuk melayani suatu service. REST merepresentasikan cara interaksi antara server dan client untuk melakukan proses pertukaran informasi melalui media yang sama. 

Dalam suatu jaringan. agar suatu resource dapat diakses, maka diperlukan identifikasi dan suatu bentuk manipulasi. Dapat digunakan URI (Uniform Resource Identifier) yang digunakan untuk mengidentifikasi resource yang ada pada suatu jaringan, dan dapat membuat resource menjadi addressable, yang berarti resource dapat diketahui lokasinya dan dapat dimanipulasi dengan menggunakan suatu aplikasi (Webber, Parastatidis, & Robinson, 2010: 5). 

REST dapat digunakan sebagai interface dari API untuk mengakses suatu resource. API yang mengikuti prinsip dari REST architecture memberikan kemudahan bagi developer untuk tidak perlu mengetahui bagaimana struktur dari API di dalam server. Dalam hal ini, server akan memberikan informasi bagaimana agar client dapat mengakses service melalui API yang telah disediakan. 


Baca Juga : plugin chat gpt terbaik untuk developer


Penggunaan protokol HTTP pada REST architecture untuk komunikasi antara client dan server terletak pada HTTP method, yaitu GET, POST, PUT, dan DELETE. Method ini dapat digunakan untuk mengakses resources yang ada pada server, bergantung dari instruksi yang diberikan oleh server. Dengan menggunakan protokol HTTP, URI dapat dijadikan sebagai media yang digunakan untuk mengakses resource dari server. Hal ini disebut dengan URI tunneling. 

URI tunneling mempergunakan URI untuk mentransfer informasi pada antar sistem yang dalam jaringan dengan melakukan encode pada URI itu sendiri. Dengan mengirim HTTP method yang telah disebutkan sebelumnya, server dapat melakukan eksekusi terhadap suatu program yang menghasilkan atau mengambil suatu resource dan mengirimkannya kembali ke client. Dalam proses ini terjadi proses mapping dari URI menjadi method call pada server yang dituju (Webber, Parastatidis, & Robinson, 2010: 37). 



Penggunaan API pada Facebook 

Facebook memiliki fitur untuk menggabungkan aplikasi dengan fungsi jejaring sosial. Untuk menghasilkan aplikasi yang dapat digunakan di Facebook, Facebook menyediakan platform yang dapat digunakan oleh para pengembang. Platform yang disediakan adalah kumpulan komponen berupa software environment. software environment inidapat digunakan untuk menghasilkan aplikasi yang dapat berjalan pada website Facebook, dan untuk mengakses data yang terdapat di dalam Facebook. Selain itu, Software environment ini dapat digunakan oleh pihak ketiga, yaitu individu atau kelompok yang mengembangkan aplikasi yang tidak berasal dari pembuat atau pemilik sistem.

Berdasarkan website dari Facebook (www.developers.facebook.com),

Aplikasi di Facebook terbagi atas dua jenis:

1. Facebook for Websites: website yang memanfaatkan API dari Facebook untuk like ataupun share button.

2. Canvas application: aplikasi yang berjalan di dalam Facebook, dan memiliki akses untuk mendapatkan informasi dari objek yang ada pada

Facebook.

Salah satu komponen yang disediakan oleh Facebook adalah Graph API. Graph API merupakan komponen utama yang digunakan untuk meminta ataupun memasukkan data ke dalam social graph yang ada pada Facebook. Social graph merupakan representasi yang menunjukkan informasi yang dimiliki dari suatu entitas beserta relasi dengan entitas lain. 

Social graph merupakan representasi dari struktur data graph. Graph terdiri atas nodes (titik) dan links (tali), dimana links berperan untuk menunjukkan hubungan antar nodes. Data pada social graph yang ada pada Facebook dapat diakses dengan dua cara, yaitu melalui:

1. Graph API: merupakan metode utama yang digunakan untuk melakukan penambahan, penghapusan, ataupun pengambilan data dari social graph

dengan menggunakan request berbasis HTTP ke server Facebook.

2. FQL (Facebook Query Language): merupakan metodeyang dapat digunakan untuk mengakses objek social graph melalui SQL-based

interface. Objek dapat diakses dengan menggunakan query layaknya pada SQL.

Pada Graph API, objek merepresentasikan nodes dan links menunjukkan hubungan antar objek (Srivstava & Singh, 2011). Objek yang terdapat di Graph API merupakan kumpulan entitas yang terdapat di dalam Facebook, contohnya seperti

individu, foto, video,dan lain-lain. Tiap objek tersebut dapat memiliki suatu links yang menyatakan suatu hubungan, yaitu seperti hubungan kekerabatan antar individu, ataupun tagged photos yang diberikan pada beberapa individu. Berikut adalah beberapa atribut yang terdapat pada tipe objek “User”, yaitu pengguna individu pada Facebook


Baca Juga : Data leak: Definisi, jenis, dan contohnya


Authentication & Authorization pada Facebook Graph API 

Sebelum aplikasi dapat memanfaatkan Graph API, diperlukan proses otentikasi dan otorisasi. Otorisasi merupakan proses untuk melakukan identifikasi dan perizinan untuk memanipulasi sumber daya tertentu, sedangkan otentikasi merupakan proses untuk melakukan verifikasi atau memastikan bahwa suatu pihak atau aplikasi berhak untuk mempergunakan sumber daya tersebut. 

 Agar aplikasi yang ada pada Facebook dapat memanfaatkan Graph API, aplikasi harus mendapatkan bukti bahwa ia dapat melakukan pemanggilan ke Graph API, dan aplikasi tersebut telah mendapatkan perizinan dari pengguna untuk mengakses data yang dibutuhkan oleh aplikasi. Untuk memenuhi dua kondisi tersebut, Facebook menyediakan mekanisme Facebook Login, yaitu komponen dari Facebook platform yang melakukan otentikasi dan otorisasi pada pengguna aplikasi. Facebook Login memanfaatkan protokol OAuth 2.0 untuk melaksanakan proses tersebut. Berdasarkan RFC (Request for Comment) 6749 dari IETF (Internet Engineering Task Force) (http://tools.ietf.org/html/rfc6749), OAuth merupakan open standard untuk melakukan otorisasi, maksud dari open standard sendiri adalah spesifikasi yang dipublikasikan dan dapat digunakan secara bebas tanpa adanya biaya tertentu. 

 

Baca juga : Tutorial Membuat Website dengan HTML dan CSS


Pada proses otentikasi dan otorisasi, fitur yang digunakan oleh Facebook untuk memastikan aplikasi dapat digunakan, antara lain: 

1. Access token: merupakan tanda yang digunakan sebagai bukti otentikasi bahwa aplikasi dapat melakukan pemanggilan terhadap API yang 17 ada pada Facebook. Pemanggilan API dilakukan dengan tujuan mengambil, mengubah, menambahkan, atau menghapus data yang ada pada objek di Graph API. Access token yang digunakan berupa opaque string, yaitu barisan karakter yang bersifat acak dan tidak dapat dibaca (Hardt, 2012). 

2. Permissions: permissions merupakan tanda perizinan dari pengguna aplikasi bahwa aplikasi dapat mengakses data yang dimilikinya. Dengan adanya permission dari pengguna, aplikasi memiliki otorisasi untuk menggunakan data yang telah diberikan oleh pengguna. Aplikasi dapat mengajukan apa saja jenis permission yang diminta dari pengguna. Secara otomatis, informasi umum seperti nama, profile picture, umur, gender, bahasa, dan negara asal telah menjadi bagian dari permission. 

Access token merupakan bukti utama yang digunakan untuk mengakses data dari pengguna, untuk memastikan bahwa access token dapat diterima oleh aplikasi yang bersangkutan, digunakan shared secret berupa application ID dan authorization code (Srivstava & Singh, 2011).