• Tidak ada hasil yang ditemukan

Prodi Teknik Informatika, Fak. Teknologi Informasi Universitas Mercubuana Yogyakarta 2016

N/A
N/A
Protected

Academic year: 2021

Membagikan "Prodi Teknik Informatika, Fak. Teknologi Informasi Universitas Mercubuana Yogyakarta 2016"

Copied!
30
0
0

Teks penuh

(1)

REST

Team dosen

TIF82

Prodi Teknik Informatika, Fak. Teknologi Informasi Universitas Mercubuana Yogyakarta

(2)

Pendahuluan

Hypertext Transfer Protocol (HTTP) merupakan eleman penting sebuah web, yang biasa kita digunakan setiap saat.

Tetapi sesungguhnya banyak yang tidak dikenal oleh para pengembang web tentang HTTP.

Sebagian besar kemampuan HTTP sebenarnya belum

digunakan secara sepenuhnya, dan REST di inspirasi oleh HTTP dan merupakan cara terbaik bagaimana HTTP

bekerja.

(3)

Pengantar REST

REST = Representational State Transfer

• REST adalah bentuk arsitektur software untuk sistem terdistribusi seperti WWW.

• Cara mudah dan sederhana untuk mengatur atau mengelola interaksi antara berbagai sistem independen.

• Menggunakan kemampuan/fitur HTTP sebenarnya yang lebih lengkap, tidak hanya GET.

• Tumbuh dan berkembang sejak 2005 dan menginspirasi banyak API seperti twitter.

• REST mengijinkan kita berinteraksi, sumber daya yang minimal dengan client.

(4)
(5)

Apakah rest web service?

REST pada dasarnya setiap URL unik adalah

representasi dari beberapa objek. Kita dapat

memperoleh konten-konten objek tersebut

menggunakan HTTP GET, untuk menghapusnya,

kita dapat menggunakan POST, PUT, atau DELETE

untuk memodifikasi objek (dalam praktiknya,

(6)

Seberapa populer rest?

Semua web service utma di internet sekarang

menggunakan REST: Twitter, Yahoo, termasuk

Flickr, del.icio.us, pubsub, bloglines, technorati, dan

beberapa yang lain. eBay dan Amazon menggunakan

baik REST maupun SOAP.

(7)
(8)

Bagaimana dengan soap?

SOAP digunakan pada aplikasi-aplikasi Enterprise

untuk mengintegrasikan penggunaan yang lebih luas

dan banyak aplikasi dan tren yang lain adalah

mengintegrasikan dengan legacy system (sistem lama

yg sudah ada sebelumnya). Dalam internet, Google

konsisten dalam mengimplementasikan web service

mereka menggunakan SOAP, kecuali Blogger yang

menggunakan XML-RPC.

(9)

konsep “SOAP to wash and your

REST when you tired”. Keuntungan

utama web service REST yaitu:

lightweigt, tidak membutuhkan XML markup tambahan

hasilnya dapat dibaca dengan mudah oleh manusia (human readable result)

mudah untuk dikembangkan, tidak membutuhkan toolkit

Aplikasi client atau server dengan dukungan HTTP dapat dengan mudah memanggil service tersebut dengan

(10)

kerugian

REST bukanlah solusi terbaik untuk setiap web

service. Data yang butuh keamanan seharusnya tidak

dikirimkan sebagai parameter dalam URI. Dan data

dalam jumlah besar, seperti layanan pembelian, dapat

menjadi rumit bahkan di luar batas URI

(11)

HTTP (1)

• Merupakan protokol yang mengijinkan pengiriman dokumen keluar masuk melalui web.

Protokol merupakan set aturan yang menentukan pesan mana yang dapat dipertukarkan dan pesan mana yang cocok satu dengan yang lain. Contoh protokol lain adalah POP3 yang bisa digunakan untuk mengambil email ke hardisk kita.

Didalam HTTP ada dua peran berbeda: Server dan Client.

Pada umumnya, Client selalu mengawali koneksi (request) dan Server akan menanggapi (response)

• HTTP berbasis text, sehingga pesan pada intinya adalah kumpulan bit dari text, meskipun konten (body) bisa berisi berbagai media lainnya.

(12)

HTTP (2)

Pesan HTTP terdiri dari Header dan Body.

Body bisa tanpa isi (kosong), atau berisi data yang ingin di transmisikan melalui jaringan, berdasar instruksi yang ada di header.

Header berisi metadata, misalnya informasi encoding.

Dalam sebuah request, Header berisi HTTP methods yang sangat penting.

Dalam REST, kita akan menemukan bahwa data header biasanya lebih penting daripada body.

(13)

Bagaimana HTTP Bekerja

• Jika menggunakan Chrome Developer Tools (Ctrl+Shift+I) atau ekstensi Firefox Firebug, kita dapat memata-matai

(14)

cURL

Cara lain untuk familiar dengan HTTP adalah

menggunakan client seperti cURL yang tersedia hampir di semua platform sistem operasi.

Download cURL : http://curl.haxx.se/ Setelah cURL terpasang, jalankan dan ketikkan misalnya

curl -v google.com

Akan ditampilkan komunikasi HTTP, request diawali dengan tanda > dan respon di awali dengan <

(15)
(16)

URL (1)

URL = Uniform resource locator ( web address )

• URL merupakan metode bagaimana kita mengidentifikasi 'sesuatu' yang ingin kita akses/kerjakan.

setiap URL mengidentifikasi sebuah resource (sumber daya). Sebagai contoh URL yang mengelola client sebuah perusahaan

• /clients

• Akan mengidentifikasi semua client perusahaan • /clients/joko

• akan mengidentifikasi client yang bernama joko, dengan menganggap bahwa hanya ada satu nama joko

(17)

URL (2)

• Contoh diatas tidak menyertakan hostname URL, karena akan menjadi tidak relevan dari titik awal bagaimana mengelola

sebuah antarmuka. Meskipun begitu hostname penting untuk memastikan bahwa identifikasi sumberdaya (resource identifier) selalu unik didunia web.

Dikatakan bahwa kita melakukan request untuk sebuah resource terhadap sebuah host.

Host disertakan secara terpisah dari lokasi resource di Header ( resource diletakkan di kanan atas sebuah header HTTP).

(18)

URL (3)

Contoh header sebuat HTTP request:

GET /clients/joko HTTP/1.1 Host: example.com

Sebuah Resources bisa dikatakan sebagai nouns

(kebendaan/kata benda). Sebagai perbandingan, contoh berikut bukan merupakan RESTful :

/clients/add

• karena resource ini menggunakan URL untuk

mendeskripsikan sebuah aksi (yaitu ‘add’). Ini dasar penting untuk membedakan sistem RESTful dan yang bukan.

(19)

URL (4)

• Kesimpulannya, URL seharusnya setepat mungkin, semua resource yang perlu di identifikasikan unik harus ada di dalam URL.

• Data yang mengidentifikasi resources di dalam request tidak perlu disertakan, dengan begini URL bertindak sebagai mapping yang lengkap untuk menangani semua data.

• Jika seperti itu, bagaimana mendidentifikasi sebuah Aksi?

misalnya clent ingin mendapatkan data atau ingin memasukkan data?

(20)

HTTP Verbs (1)

Setiap request selalu menyertakan HTTP verbs atau metode (methods) di Header-nya. Inilah bagian atau baris pertama dalam sebuah header request

• GET / HTTP/1.1

• artinya metode GET digunakan, untuk mengakses root URL • DELETE /clients/joko HTTP/1.1

• artinya metode DELETE digunakan (disini untuk menghapus client bernama joko).

• "HTTP Verbs menginformasikan ke server apa yang harus

(21)

HTTP Verbs (2)

Sebuah Request dapat pula menyertakan data

tambahan di dalam body yang mungkin diperlukan

untuk operasi, misalnya data yang akan di entry.

HTTP verbs yang penting untuk diketahui adalah :

GET, POST, PUT dan DELETE. Metode lain

semisal HEAD dan OPTIONS juga tersedia, tetapi

jarang digunakan.

Daftar HTTP Methods lebih lengkap di

http://www.ietf.org/rfc/rfc2616.txt

(22)

HTTP GET

GET merupakan jenis HTTP request methods yang paling sederhana.

Digunakan di setiap kita membuka link di web browser, yang menginstruksikan ke server untuk mendapatkan data yang diidentifikasikan di URL.

Data di server tidak seharusnya dan tidak boleh di

modifikasi dengan metode GET. Sehingga GET request merupakan read-only.

Client bebas melakukan operasi terhadap data yang didapat, seperti menampilkan dengan format tertentu

(23)
(24)

HTTP PUT

Request PUT digunakan ketika ingin membuat atau update resource yang diidentifikasi oleh URL. Contoh

• PUT /clients/agus HTTP/1.1

• bisa di artikan untuk membuat client baru dengan nama agus di server.

PUT dapat menyertakan data yang digunakan untuk mengupdate atau membuat data baru di sever.

REST tidak menginformasikan kepada server didalam request bagaimana data harus dibuat.

(25)
(26)

HTTP DELETE

Request DELETE digunakan untuk operasi yang

berkebalikan dengan PUT.

Digunakan ketika ingin menghapus resource yang di

identifikasi oleh URL di request, misalnya

• DELETE /clients/bambang HTTP/1.1

• request ini akan menghapus data yang di identifikasi dengan /clients/bambang.

(27)
(28)

HTTP POST

• Request POST digunakan untuk memproses data yang diserver biasanya harus diulang-ulang. Sebagai contoh :

• POST /clients/ HTTP/1.1

• harusnya tidak membuat resource /clients/ di modifikasi, tetapi

resource yang URLnya diawali dengan /clients/. Misalnya menambah client baru dengan ID yang di generate oleh server

• Tetapi terkadang PUT dan POST digunakan secara

berkebalikan. Meskipun biasanya POST request digunakan untuk melakukan operasi di server yang tidak bisa dilayani dengan Create/Update/Delete. Sehingga kebanyakan mencukupkan diri dengan PUT.

(29)
(30)

KLASIFIKASI HTTP Methods

Safe dan Unsafe methods

• Safe methods yang tidak memodifikasi resources, dan hanya GET yang masuk jenis ini. Selain GET bisa memodifikasi resources (unsafe methods)

Idempotent methods

• Metode ini mendapatkan hasil yang sama, meski request diulang bekali-kali. Mereka adalah GET, PUT dan

DELETE. Sedangkan POST merupakan methods non idempotent

Referensi

Dokumen terkait

In qualitative research, the term variable is not used, and instead the inquirer seeks to gather information on a single concept – a central phenomenon.. In

Jalan Jakarta Perum Apel Biru

Reality is single; it can be broken down and parts studied..

[r]

Pendekatan ergonomi mengacu pada konsep system total manusia – lingkungan yang bertujuan agar pekerjaan dalam industri berjalan secara efisien, selamat dan nyaman Permenaker No.

Dakwah Islam melalui ajaran tasawuf cukup mudah diterima oleh masyarakat karena inti dari tasawuf adalah mementingkan pembinaan moral yang penuh dengan

Konsep negara hukum (rechtsstaat) lebih dekat pada prinsip &#34;Supremacy of General Law&#34; dalam system kontinental, yang pada dasarnya tidak memungkinkan hakim

[r]