Mengulik RESTful API
Mari Bermain API

Hello there ! Dalam post sebelumnya kita telah mencoba untuk memahami konsep dasar dari sebuah API. Dalam kesempatan kali ini, kita akan mencoba untuk bermain dengan API lebih jauh lagi. Let’s get started! sudah cukup panaskah Anda?

We’ll now discuss about REST. So what is REST?

REST, singkatan dari Representasional State Transfer, adalah sebuah software architecture style.

REST dan API

Jika REST merupakan software architecture style, lalu apa hubungannya dengan API?

Kurang lebih berikut adalah gambaran umumnya. REST menekankan beberapa constraints yang dapat digunakan untuk membuat Web Services. Web services sendiri dapat dikatakan adalah salah satu jenis dari implementasi API dari untuk menghubungkan beberapa sistem yang terpisah oleh suatu jaringan.

REST dan RESTful API

Sebuah sistem yang dibangun dengan kaidah-kaidah REST dikatakan sebagai RESTful System. Kesimpulannya, RESTful API adalah API yang dibangun dengan mengacu pada konsep dan constraints dari REST.

What is REST, really ...

Okay selanjutnya, bagaimanakah sebenarnya konsep dari REST itu? Secara umum, terdapat dua buah konsep dasar tentang REST, yaitu:

1. Resource-Based

REST menekankan pada resource atau objek yang akan dimanipulasi. Ambillah beberapa contoh objek-objek yang dapat dimanipulasi dalam suatu restoran, misal Menu (buat menu, hapus menu, edit menu, dsb) dan Utensil/peralatan dapur (dapatkan info tentang peralatan, ganti peralatan, dsb). Dengan menggunakan ilustrasi tersebut, yang dimaksud Resource-Based adalah sebagai berikut:

REST style:

  • Menu
  • Utensil

Not a REST style:

  • getMenuInfo
  • getUtensilInfo

Resource pada REST diidentifikasi dengan menggunakan URI
REST style:

http://myrestfulapp.com/menu/{id}
http://myrestfulapp.com/utensil/{id}

Not a REST style:

restaurantAPI.getMenuInfo(int id)
restaurantAPI.getUtensilInfo(int id)

Nor this:

http://myrestfulapp.com/getMenuInfo/{id}
http://myrestfulapp.com/getUtensilInfo/{id}

Jika dilihat, resources/objek-objek tersebut dituliskan dengan menggunakan kata benda (nouns) bukan kerja (verbs). Pertanyaannya, bagaimana kita dapat memanipulasi objek tersebut jika tidak diperkenankan menggunakan kata kerja? Jawabannya adalah dengan menggunakan HTTP Methods (GET, POST, PUT, DELETE, dsb) .

Penjelasan lebih lanjut mengenai HTTP Methods: https://restfulapi.net/http-methods/

2. Representation

Konsep berikutnya adalah mengenai Representation. Bagaimana REST merepresentasikan sebuah objek? Bagaimana suatu objek dimanipulasi? Umumnya, REST menggunakan JSON atau XML dalam merepresentasikan objek.

Contoh sebuah layanan REST adalah sebagai berikut:

Contoh penggunaan:

request :

(GET)  http://myrestfulapp.com/menu/1

response :

{ “id” : “1”, “title” : “Egg Benedict”, “price” : “6.50” }

JSON tersebut adalah contoh reprentasi sebuah resource/objek dalam REST.

Kurang lebih seperti itulah gambaran umum dari konsep REST. Seperti yang telah disampaikan sebelumnya, untuk membuat suatu RESTful API, API tersebut harus dibuat dengan mematuhi constraints yang berlaku. Adapun REST memiliki 6 constraints, yaitu:

  1. Uniform Interface
  2. Stateless
  3. Cacheable
  4. Client-Server
  5. Layered System
  6. Code on Demand (optional)

Beware! Violating any of those constrains means that RESTful service is not strictly RESTful

Jika ingin mengupas lebih jauh lagi mengenai contraints tersebut, Anda dapat melihat penjelasan dalam https://www.restapitutorial.com

Well then, that’s it for now.. Thanks for reading, and see you again next time!

never stop learning!

Image Source:
https://images.techhive.com/images/article/2015/08/rest-apis-fig2-100602499-large.idge.png
http://prideparrot.com/Source-Codes/Images/REST.png
https://phpenthusiast.com/theme/assets/images/blog/what_is_rest_api.png

Written by gpamungkas on Apr 7 2019, 5:37 PM.
User
Projects
None
Subscribers
None