Mengenal Lebih Dekat RESTful API

Apa itu RESTful-API?

API RESTful merupakan antarmuka yang difungsikan oleh dua sistem untuk bertukar informasi dengan aman melalui internet. Sebagian besar sistem informasi atau aplikasi bisnis mengharuskan berkomunikasi melalui aplikasi internal yang berasal dari pihak ketiga lainnya untuk melakukan berbagai pekerjaan. Sebagai contoh, untuk dapat menghasilkan slip gaji pegawai, maka sistem akun internal pengguna harus berbagi data dengan sistem yang ada pada perbankan pelanggan untuk mengotomatiskan hasil tagihan dan melakukan komunikasi dengan aplikasi presensi internal perusahaan / organisasi. RESTful-API saat ini mendukung berbagai pertukaran informasi karena mengikuti standar komunikasi software yang di desain secara aman, handal, dan efisien.

Definisi API

Antarmuka acara software (API) memilih aturan yg wajib Anda ikuti buat berkomunikasi dengan sistem perangkat lunak lain. Developer mengekspos serta menghasilkan API sebagai akibatnya aplikasi lain bisa berkomunikasi menggunakan aplikasinya secara terprogram. misalnya, aplikasi absensi mengekspos api yg meminta nama lengkap pegawai dan rentang tanggal. saat menerima gosip ini, api memproses absensi pegawai secara internal serta mengembalikan jumlah jam kerja pada rentang lepas tadi. Anda dapat menduga sebuah api web menjadi gateway antara klien dan asal daya pada web.

 

Client (Klien)

Klien ialah pengguna yang ingin mengakses informasi dari web. Klien dapat berupa orang atau sistem software yang menggunakan api. contohnya, developer dapat menulis acara yang mengakses data cuaca dari sistem data. Atau Anda bisa mengakses data yang sama asal peramban Anda waktu mengunjungi situs web cuaca secara langsung.

 

Resource (Sumber Daya)

sumber daya artinya isu yg disediakan perangkat lunak yang berbeda buat klien mereka. asal daya bisa berupa citra, video, teks, angka, atau tipe data apa pun. Mesin yang memberikan sumber daya pada klien diklaim juga sebagai server. Organisasi menggunakan api buat membuatkan asal daya serta menyediakan layanan web sembari memelihara keamanan, kendali, serta autentikasi. Selain itu, api membantu menentukan klien yang menerima akses ke sumber daya internal eksklusif.

 

Apa itu REST?

Representational State Transfer (REST) artinya arsitektur software yg memberlakukan kondisi mengenai cara api bekerja. REST pada awalnya dibuat sebagai pedoman untuk mengelola komunikasi di jaringan kompleks seperti internet. Anda bisa menggunakan arsitektur berbasis REST buat mendukung komunkasi berperforma tinggi dan andal sinkron skala. Anda dapat menggunakan simpel menerapkan dan memodifikasinya, membawa visibilitas serta portabilitas lintas platform ke semua sistem api.

Developer api bisa merancang API menggunakan beberapa arsitektur yg tidak selaras. api yg mengikuti gaya arsitektur REST diklaim menjadi API REST. Layanan web yg menerapkan arsitektur REST disebut menjadi layanan web RESTful. kata api RESTful umumnya merujuk pada API web RESTful. tetapi, Anda bisa memakai kata API REST dan API RESTful secara bergantian.

 

Berikut artinya beberapa prinsip gaya arsitektur REST:

Antarmuka seragam
Antarmuka seragam ialah desain fundamental berasal semua layanan web RESTful. Ini mengindikasikan bahwa server mentransfer isu dalam format standar. sumber daya terformat disebut representasi pada REST. Format ini dapat tidak sinkron asal representasi internal sumber daya pada software server. contohnya, server dapat menyimpan data sebagai teks tetapi mengirimkannya dalam format representasi HTML.

Antarmuka seragam memberlakukan empat hambatan arsitektur:

  1. Permintaan harus mengidentifikasi sumber daya. Permintaan melakukannya dengan memakai pengidentifikasi sumber daya seragam.
  2. Klien memiliki relatif info pada representasi asal daya buat memodifikasi atau menghapus sumber daya Jika diinginkan. Server memenuhi kondisi ini menggunakan mengirimkan metadata yg menyebutkan sumber daya lebih lanjut.
  3. Klien mendapatkan informasi tentang cara buat memproses representasi lebih lanjut. Server mencapainya dengan mengirimkan pesan naratif mandiri yg berisi metadata tentang cara klien bisa menggunakannya sebaik mungkin.
  4. Klien mendapatkan info tentang seluruh asal daya terkait lainnya yg dibutuhkan buat menuntaskan tugas. Server mencapainya dengan mengirim hyperlink pada dalam representasi sebagai akibatnya klien bisa menemukan lebih banyak sumber daya secara bergerak maju.

Statelessness
dalam arsitektur REST, statelessness mengacu di metode komunikasi daerah server menyelesaikan setiap permintaan klien secara independen dari seluruh permintaan sebelumnya. Klien dapat meminta asal daya pada perintah apa pun, serta setiap permintaan berada pada status stateless atau terisolasi berasal permintaan lain. hambatan rancangan api REST ini menyiratkan bahwa server bisa sepenuhnya tahu dan memenuhi permintaan setiap saat

Sistem Berlapis
dalam arsitektur sistem berlapis, klien bisa terhubung ke perantara resmi lain antara klien dan server, dan masih akan menerima respons asal server tersebut. Server pula dapat meneruskan permintaan ke server lain. Anda dapat merancang layanan web RESTful buat berjalan di beberapa server menggunakan beberapa lapisan mirip keamanan, aplikasi, dan logika bisnis, bekerja sama buat memenuhi permintaan klien. Lapisan ini permanen terlihat oleh klien.

Ketersinggahan (Cacheability)
Layanan web RESTful mendukung pembuatan cache, proses penyimpanan beberapa respons pada klien atau di mediator buat menaikkan saat respons server. contohnya, bayangkan Anda mengunjungi situs web yg memiliki gambaran header serta footer umum pada setiap halaman. Setiap kali Anda mengunjungi halaman situs web baru, server harus mengirim ulang citra yg sama. untuk menghindari hal ini, klien menghasilkan cache atau menyimpan citra sehabis respons pertama kemudian menggunakan gambaran ini pribadi asal cache tersebut. Layanan web RESTful mengontrol pembuatan cache dengan memakai respons API yang menentukannya apakah bisa dirancang cache atau tidak.

Kode Sesuai Permintaan (Request)
pada gaya arsitektur REST, server dapat sementara memperluas atau menyesuaikan fungsionalitas klien menggunakan mentransfer kode pemrograman aplikasi ke klien. contohnya, saat Anda mengisi formulir registrasi pada situs web, peramban Anda menggunakan segera menyoroti kesalahan yg Anda buat, seperti angka telepon yg keliru. Ini bisa terjadi karena kode yang dikirimkan sang server.

Apa saja manfaat api RESTful?

api RESTful memiliki manfaat berikut:

Skalabilitas
Sistem yang menerapkan api REST bisa menskalakan secara efisien karena REST mengoptimalkan interaksi klien-server. Statelessness menghapus beban server sebab server tak perlu mempertahankan isu permintaan klien di masa lalu. Pembuatan cache yang dikelola menggunakan baik secara parsial atau keseluruhan menghilangkan beberapa interaksi klien-server. semua fitur ini mendukung skalabilitas tanpa mengakibatkan stagnasi komunikasi yg mengurangi performa.

Fleksibilitas
Layanan web RESTful mendukung pemisahan total klien-server. Layanan web RESTful menyederhanakan serta memisahkan berbagai komponen server sehingga masing-masing bagian bisa berkembang secara mandiri. Perubahan platform atau teknologi pada perangkat lunak server tidak memengaruhi software klien. Kemampuan buat melapisi fungsi aplikasi semakin menaikkan fleksibilitas lebih jauh. contohnya, developer dapat menghasilkan perubahan di lapisan basis data tanpa menulis ulang akal software.

Independensi
API REST independen terhadap teknologi yang digunakan. Anda dapat menulis baik perangkat lunak klien serta server pada banyak sekali bahasa pemrograman tanpa memengaruhi desain API. Anda juga bisa mengubah teknologi fundamental pada kedua sisi tanpa memengaruhi komunikasi.

Bagaimana cara kerja API RESTful?
Fungsi dasar API RESTful sama menggunakan penjelajahan internet. Klien menghubungi server dengan menggunakan API saat meminta sumber daya. Developer api mengungkapkan pada klien cara buat memakai API REST dalam dokumentasi API aplikasi server. Ini artinya langkah umum buat semua panggilan API REST:

Klien mengirimkan permintaan ke server. Klien mengikuti dokumentasi api buat memformat permintaan pada format yang dipahami sang server.
Server mengautentikasi klien dan mengonfirmasi bahwa klien memiliki hak buat membentuk permintaan.
Server mendapatkan permintaan serta memproses secara internal.
Server mengembalikan respons pada klien. Respons berisi informasi yang memberitahu klien Bila permintaannya berhasil. Respons jua termasuk berita apa saja yg diminta klien.
Permintaan api REST dan lebih jelasnya respons sedikit berbeda tergantung pada cara developer API merancang api.

Apa isi permintaan klien API RESTful?
RESTful API memerlukan permintaan buat memuat komponen primer berikut:

Pengidentifikasi sumber daya unik
Server mengidentifikasi setiap asal daya dengan pengidentifikasi asal daya yang unik. buat layanan REST, server umumnya melakukan identifikasi sumber daya menggunakan menggunakan Uniform Resource Locator (URL). URL memilih jalur ke sumber daya. URL seperti dengan alamat situs web yang Anda masukkan ke peramban untuk mengunjungi laman web mana pun. URL jua diklaim titik akhir permintaan dan menggunakan kentara memilih server yang diperlukan klien.

Metode
Developer acapkali mengimplementasikan API RESTful dengan menggunakan Hypertext Transfer Protocol (HTTP). Metode HTTP memberi memahami server hal-hal yg perlu dilakukan terhadap asal daya. ini dia merupakan empat metode HTTP awam:

GET

Klien memakai GET buat mengakses asal daya yg berada di URL yg dipengaruhi pada server. Mereka bisa menyimpan permintaan GET dan mengirim parameter dalam permintaan api RESTful buat menginstruksikan server memfilter data sebelum mengirim.

POST

Klien menggunakan POST buat mengirim data ke server. Mereka menyertakan representasi data dengan permintaan. Mengirim permintaan POST yg sama beberapa kali memiliki dampak samping mirip menghasilkan asal daya yg sama beberapa kali.

PUT

Klien memakai PUT buat memperbarui sumber daya yang terdapat di server. tidak seperti POST, mengirimkan permintaan PUT yg sama beberapa kali pada layanan web RESTful memberikan yang akan terjadi yg sama.

DELETE

Klien menggunakan permintaan DELETE buat menghapus asal daya. Permintaan DELETE bisa mengubah status server. tetapi, Jika pengguna tidak memiliki autentikasi yang sesuai, permintaan akan gagal.

Header HTTP
Header permintaan ialah pertukaran metadata antara klien dan server. contohnya, header permintaan memberikan format permintaan dan respons, menyampaikan info ihwal status permintaan, serta sebagainya.

Data

Permintaan api REST mungkin menyertakan data buat POST, PUT, serta metode HTTP lainnya agar berhasil.

Parameter

Permintaan API RESTful bisa termasuk parameter yang memberi server lebih banyak lebih jelasnya ihwal hal yg perlu dilakukan. berikut ini ialah beberapa tipe parameter:

Parameter jalur yang memilih detail URL.
Parameter kueri yang meminta informasi selengkapnya perihal sumber daya.
Parameter cookie yang mengautentikasi klien dengan cepat.

 

Apa itu metode autentikasi API RESTful?

Layanan web RESTful harus mengautentikasi permintaan sebelum bisa mengirim respons. Autentikasi adalah proses verifikasi ciri-ciri. contohnya, Anda bisa membuktikan identitas Anda dengan menunjukkan KTP atau SIM. Demikian halnya, klien layanan RESTful wajib membuktikan identitas mereka ke server buat membangun agama.

RESTful api mempunyai empat metode autentikasi awam:

 

Autentikasi HTTP

HTTP menentukan beberapa skema autentikasi yg bisa Anda gunakan secara pribadi ketika menerapkan API REST. ini dia merupakan dua skema tersebut:

Autentikasi dasar

pada autentikasi dasar, klien mengirimkan nama pengguna dan istilah sandi di header permintaan. Header mengodekannya dengan base64, yaitu teknik pengkodean yg mengonversi pasangan sebagai satu set 64 karakter buat transmisi yang safety.

Autentikasi pembawa

istilah autentikasi pembawa mengacu pada proses anugerah kontrol akses pada pembawa token. Token pembawa umumnya berupa gugusan karakter terenkripsi yg didapatkan server sebagai respons atas permintaan masuk. Klien mengirimkan token pada header permintaan buat mengakses asal daya.

Kunci API
Kunci api artinya opsi lain buat autentikasi API REST. dalam pendekatan ini, server menyampaikan nilai unik yang didapatkan ke klien pertama kali. Setiap kali klien mencoba mengakses asal daya, api memakai kunci api unik buat memverifikasi dirinya sendiri. Kunci API kurang aman sebab klien wajib mentransmisikan kunci, yg membuatnya rentan terhadap pencurian jaringan.

OAuth
OAuth menggabungkan istilah sandi dan token buat akses masuk yang sangat aman ke sistem apa pun. Server pertama-tama meminta istilah sandi kemudian meminta token tambahan buat menyelesaikan proses otorisasi. Server dapat mempelajari token kapan saja dan pula berasal waktu ke saat menggunakan cakupan dan periode tertentu.

Apa isi asal respons server API RESTful?
Prinsip REST mewajibkan respons server berisi komponen utama berikut:

Baris status
Baris status berisi kode status tiga digit yg mengomunikasikan keberhasilan atau kegagalan permintaan. misalnya, kode 2XX memberikan berhasil, tetapi kode 4XX serta 5XX memberikan kesalahan. Kode 3XX menunjukkan pengalihan URL.

berikut adalah adalah beberapa kode status umum :

  • 200: Respons sukses awam
  • 201: Respons sukses metode POST
  • 400: Permintaan salah yg tak bisa diproses sang server
  • 404: asal daya tidak ditemukan

Isi pesan
Isi respons memuat representasi sumber daya. Server menentukan format representasi yang sinkron berdasarkan isi header permintaan. Klien dapat meminta informasi pada format XML atau JSON, yang menentukan cara data ditulis pada teks biasa. misalnya, Bila klien meminta nama serta usia seseorang bernama John, server mengembalikan representasi JSON menjadi berikut:

‘{“name”:”Crip”, “age”:30}’

Header
Respons juga berisi header atau metadata ihwal respons tadi. Header memberikan lebih poly konteks tentang respons dan menyertakan berita mirip server, pengkodean, tanggal, serta tipe konten.