Pengertian REST API (Part 2)

November 06, 2018 by

ORM (Object Relationship Mapping). ORM adalah suatu metode/teknik pemrograman yang digunakan untuk mengkonversi data dari lingkungan bahasa pemrograman berorientasi objek (OOP) dengan lingkungan database relasional, ORM tersebut bertugas sebagai penghubung dan sekaligus mempermudah kita dalam membuat aplikasi yang menggunakan database relasional agar menjadikan tugas kita lebih efisien.

Berikut ini adalah beberapa kelebihan yang dimiliki ORM:
  1. Mempercepat pengembangan program contohnya, mengurangi perulangan kode query. Memudahkan pemakaian karena tabel-tabel terepresentasikandalam bentuk objek.
  2. Membuat akses data menjadi lebih abstrak dan portable.
  3. Hal ini dikarenakan ORM menghandle pen-generate-an syntax SQL berdasarkan vendor databasenya.
  4. Mensupport pengkapsulan business rule pada lapisan Data Access.
  5. Mengantisipasi Error karena penulisan syntak yang panjang.
  6. Men-generate boilerplate code (unit kode yang reusable) untuk fungsi dasar CRUD (Create, Read, Update, Delete).
Intinya ORM adalah untuk menjembatani sistem OOP dengan sistem yang ada di database.
REST API lebih superior dibandingkan dengan web service tradisional karena API yang mengikuti prinsip REST adalah native web citizens artinya API tersebut bekerja sesuai dengan prinsip kerja web. 

Prinsip kerja web => 4 unsur : user, client server, TCP/IP, Server.

Diatas dijelaskan secara sederhana prinsip kerja web yaitu intinya request dan response.
Felding & Taylor (2008) => REST mempunyai beberapa prinsip fundamental sebab:
1. Berorientasi pada resources dan addressability
=> seluruh bit informasi harus dibungkus dalam sebuah resources yang dapat diakses melalui penanda yang stabil. Penandi ini disebut URL & Resourves diakses melalui HTTP. 
URL endopint utama : https://api.example.com/

2. Penggunaan interfacce yang seragam
Arsitektu REST memiliki interfave yang seragam untuk dapat mengakses sebuah resources dari URL. Interface ini disebut dengan HTTP Verbs. Http verbs yang sering dipakai yaitu:
GET => mengambil sebuah representative resources
HEAD => mengambil informasi header resources
OPTIONS => mengambil daftar verbs yang didukung oleh resources ini.
PUT => Mengganti resources
DELETE => Menghapus resources
PATCH => memperbaharui state dari resources
POST => membuat resources

3. Representasi resources dan tipe media
Resources yang direpresentasikan dapat menyesuaikan dengan kemampuan client, contoh HTML, XML, JSON.
4. Hypermedia as the Engine of Application State (HATEOAS)
Resources harus memiliki hyperlink atau form, untuk berpindah ke state aplikasi berikutnya dan menampilkan resources yang berbeda.

REST API yang memanfaatkan prinsip HATEOAS memiliki keuntungan bagi software developer. Sebuah REST API memiliki satu endpoint utama (url) yang dapat diakses, sehingga dapat dieksplorasi seperti halnya melakukan browsing pada web. Resources dapat dengan mudah ditelusuri dan ditemukan melalui hyperlink, serta juga dapat memanipulasi dengan menggunakan HTTP Verbs (Amundsen,2010).

Beralih pada database di dalam PHP OOP ada konsep tentang PDO (PHP Data Object). PDO adalah interface universal yang disediakan oleh PHP untuk berkomunikasi dengan database server. Maksudnya interface universal adalah ketika kita pindah sever dengan database MySQL ke PostgreSQL tidak merubah syntax seluruh kode tetapi hanya konfigurasi database pada framework atau cara pemanggilan awal PDO dan seluruh kode program bisa digunakan untuk database baru.

Konsep PDO yaitu PDO=>Database Driver=>Database Server (ini adalah koneksi dari PHP yang sudah menerapkan konsep PDO). 
PDO bekerja dengan metode yang disebut data-access abstraction layer. Artinya apapun jenis database server yang digunakan kode PHP yang ditulis akan tetap sama. PDO menyediakan "abstraction layer" untuk berkomunikasi dengan database server. Untuk menggunakan PDO, kita harus mengakses menggunakan object. PDO tidak menyediakan cara penulisan procedural style sperti mysqli/mysql extension. Karena itu didalam PDO ada istilah pemrograman object, seperti class, method, property, dsb. PDO mulai ada untuk php versi 5.1 ke atas. Jenis database server yang didukung PDO ada 12 jenis interface database server :
CUBRID , MS SQL Server, Firebird, IBM, Informix, MYSQL, Oracle, ODBC dan DB2, PostgreSQL, SQLite, 4D.
Dengan membuat kode PHP menggunakan PDO, secara tidak langsung kita juga membuka kemungkinan untuk menggunakan database server selain MySQL sehingga menjadi lebih flexibel. Check driver database yang sudah aktif menggunakan static method. 
<?php 
print_r(PDO::getAvailableDrivers());
?>

Untuk mengubah konfigurasi cek di file xampp/php/php.ini hapus tanda ; di depan ;extension=php_pdo_mysql.dll dan ;extension=php_pdo_sqlite.dll ;extension=php_pdo_pgsql.dll untuk driver postgresql ;extension=php_pdo_oci.dll yang digunakan oleh oracle, ada error jika diaktifkan "the program can't start because oci.dll is missing from your computer" error di atas terjadi karena PHP tidak menyertakan library php_pdo_oci.dll dan kita harus mendownload secara manual. Setelah saya mencari dari beberapa sumber, ternyata PDO untuk oracle masih status "experiment" dan dikembangkan oleh komunitas bukan oracle sendiri sehingga sebagai alternatif gunakan fungsi oracle "biasa" :oci8.

0 comments:

Post a Comment