Pemrograman RESTful API [email protected] Apa itu? Apa itu REST? REST bermakna: • REpresentational • State • Transfer REpresentational ? State ? Transfer ? • Merepresentasikan status dari database pada suatu waktu. Caranya? • REST merupakan suatu architectural style yang didasarkan pada web- standard dan protokol HTTP. • Dalam arsitektur berbasis REST semua dianggap Resource. • Resource diakses via suatu interface umum berbasiskan pada metode standard HTTP. • Biasanya kita mempunyai REST server yang menyediakan akses ke resources dan REST client yang mengakses dan memodifikasi REST resources tersebut. REpresentational ? State ? Transfer ? • Setiap resource harus mendukung operasi umum HTTP. • Resources dikenali dengan global ID (biasanya berupa URI atau URL). • REST memungkinkan resources tersebut mempunyai representasi berbeda, seperti text, XML dan JSON. • Sifatnya Stateless. Sangat cocok untuk sistem terdistribusi. • Komponen Stateless dapat secara bebas di-redeploy jika terjadi kegagalan, dan dapat di-scale untuk mengakomodir perubahan beban. • Ini karena suatu request dapat diarahkan ke instance tertentu dari komponen. Metode HTTP • Metode PUT, GET, POST dan DELETE biasa digunakan dalam arsitektur berbasis REST Metode Operasi Keterangan HTTP CRUD POST INSERT Menambahkan ke sumber daya yang ada PUT UPDATE Memperbarui sumber daya yang ada GET SELECT Mengambil suatu sumber daya. Sumber daya itu tidak pernah berubah via request GET DELETE DELETE Menghapus suatu sumber daya Arsitektur Contoh HTTP Request Baris request Header dari request Header request message Suatu baris kosong memisahkan header & body Body (badan) request message Contoh HTTP Response Baris status Header dari response Header respon message Suatu baris kosong memisahkan header & body Body (badan) response message HTTP REST Request: GET https://www.myhost.com/api/v1/user/1/cities Baca, Semua kota untuk user dengan id bernilai 1 GET /user/1/cities http/1.1 host: https://www.myhost.com/api/v1 Content-Type: application/json Accept-Language: us-en state_id: 2 HTTP REST API Request
Description: