Mengenal Istilah RESTful API | Apa kabar sahabat Raya Tekno? kali ini kita akan membahas tentang apa itu istilah Restful API.
Pada dasarnya ada perbedaan yang mendasar antara API, REST dan REstful API.
Mengenal API
API adalah singkatan dari Application Programming Interface yaitu sebuah software yang memungkinkan para developer untuk mengintegrasikan dan mengizinkan dua aplikasi yang berbeda secara bersamaan untuk saling terhubung satu sama lain..
Tujuan penggunaan dari API adalah untuk saling berbagi data antar aplikasi yang berbeda tersebut, Tujuan penggunaan API lainnya yaitu untuk mempercepat proses pengembangan aplikasi dengan cara menyediakan sebuah function yang terpisah sehingga para developer tidak perlu lagi membuat fitur yang serupa.
Istilah “API” sebetulnya tidak ada hubungannya dengan hal-hal yang berkaitan dengan web, karena istilah tersebut sudah ada sebelum web. Hal Ini semacam dikooptasi yang berarti “pemanggilan web service”. Tapi secara tradisional, Pengertian API bukan seperti itu. Tapi lebih berkaitan dengan fungsi-fungsi yang disediakan oleh Sistem Operasi.
Sesuai penjelasan diatas jika API adalah sebuah software yang mengintegrasikan antara aplikasi yang kita buat dengan aplikasi yang lain. Tujuan pembuatannya yaitu untuk saling berbagi data antar aplikasi yang sudah diintegrasikan tersebut.
Sedangkan REST API merupakan salah satu dari desain arsitektur yang terdapat di dalam API itu sendiri. Dan cara kerja dari RESTful API yaitu REST client akan Melakukan akses pada data/resource pada REST server dimana masing-masing resource. Atau data/resource tersebut akan dibedakan oleh sebuah global ID atau URIs (Universal Resource Identifiers).
Jadi, Nantinya data yang diberikan oleh REST server itu bisa berupa format text, JSON atau XML. Dan saat ini format yang paling populer dan paling banyak digunakan adalah format JSON.

Mengenal Istilah REST
REST, singkatan bahasa Inggris dari representational state transfer atau transfer keadaan representasi, adalah suatu gaya arsitektur perangkat lunak untuk untuk pendistribusian sistem hipermedia seperti WWW. Istilah ini diperkenalkan pertama kali pada tahun 2000 pada disertasi doktoral Roy Fielding, salah seorang penulis utama spesifikasi HTTP. Istilah ini selanjutnya dipergunakan secara luas pada komunitas jaringan.
REST secara spesifik merujuk pada suatu koleksi prinsip-prinsip arsitektur jaringan yang menggariskan pendefinisian dan pengalamatan sumber daya. Istilah ini sering digunakan dengan longgar untuk mendeskripsikan semua antarmuka sederhana yang menyampaikan data dalam domain spesifik melalui HTTP tanpa tambahan lapisan pesan seperti SOAP atau pelacakan sesi menggunakan cookie HTTP. Dua pengertian ini dapat menimbulkan konflik dan juga tumpang tindih.
Dimungkinkan untuk merancang suatu sistem perangkat lunak besar sesuai dengan gaya arsitektur REST Fielding tanpa menggunakan HTTP dan tanpa berinteraksi dengan WWW. Juga dimungkinkan untuk merancang antarmuka XML+HTTP sederhana yang tidak mengikuti prinsip-prinsip REST, tetapi sebaliknya mengikuti model dari RPC (remote procedure call). Perbedaan penggunaan istilah REST ini cukup menyebabkan permasalahan dalam diskusi-diskusi teknis.
Sistem yang mengikuti prinsip REST Fielding sering disebut sebagai “RESTful”.
Representational state transfer (REST) adalah gaya arsitektur perangkat lunak yang dibuat untuk memandu desain dan pengembangan arsitektur untuk World Wide Web. REST mendefinisikan satu set batasan tentang bagaimana arsitektur sistem hypermedia terdistribusi skala Internet, seperti Web, harus berperilaku.
Gaya arsitektur REST menekankan skalabilitas interaksi antar komponen, antarmuka seragam, penyebaran komponen secara independen, dan pembuatan arsitektur berlapis untuk memfasilitasi komponen caching guna mengurangi latensi yang dirasakan pengguna, menegakkan keamanan, dan merangkum sistem lama.
REST telah digunakan di seluruh industri perangkat lunak dan merupakan kumpulan pedoman yang diterima secara luas untuk membuat API web tanpa kewarganegaraan dan andal. API web yang mematuhi batasan REST secara informal digambarkan sebagai RESTful. API web RESTful biasanya secara longgar didasarkan pada metode HTTP untuk mengakses sumber daya melalui parameter yang disandikan URL dan penggunaan JSON atau XML untuk mengirimkan data.
“Sumber daya web” pertama kali didefinisikan di World Wide Web sebagai dokumen atau file yang diidentifikasi oleh URL-nya. Saat ini, definisi tersebut jauh lebih umum dan abstrak dan mencakup setiap hal, entitas, atau tindakan yang dapat diidentifikasi, dinamai, ditangani, ditangani, atau dilakukan dengan cara apa pun di Web.
Istilah RESTful
Dalam layanan Web RESTful, permintaan yang dibuat ke URI sumber daya memperoleh respons dengan muatan yang diformat dalam HTML, XML, JSON, atau format lain. Misalnya, respons dapat mengonfirmasi bahwa status sumber daya telah diubah. Respons juga dapat menyertakan tautan hypertext ke sumber daya terkait. Protokol yang paling umum untuk permintaan dan tanggapan ini adalah HTTP.
Hal Ini menyediakan operasi (metode HTTP) seperti GET, POST, PUT, dan DELETE. Dengan menggunakan protokol stateless dan operasi standar, sistem RESTful bertujuan untuk kinerja yang cepat, keandalan, dan kemampuan untuk berkembang dengan menggunakan kembali komponen yang dapat dikelola dan diperbarui tanpa memengaruhi sistem secara keseluruhan, bahkan saat sedang berjalan.
Tujuan REST adalah untuk meningkatkan kinerja, skalabilitas, kesederhanaan, kemampuan untuk dimodifikasi, visibilitas, portabilitas, dan keandalan. Ini dicapai melalui prinsip-prinsip REST berikut seperti arsitektur client-server, statelessness, cacheability, penggunaan sistem berlapis, dukungan untuk kode sesuai permintaan, dan menggunakan antarmuka yang seragam. Prinsip-prinsip ini harus diikuti agar sistem diklasifikasikan sebagai RESTful.
Sejarah REST
Web mulai digunakan sehari-hari pada 1993-1994, ketika situs web untuk penggunaan umum mulai tersedia. Pada saat itu, hanya ada deskripsi terfragmentasi dari arsitektur Web, dan ada tekanan di industri untuk menyetujui beberapa standar untuk protokol antarmuka Web.
Misalnya, beberapa ekstensi eksperimental telah ditambahkan ke protokol komunikasi (HTTP) untuk mendukung proxy, dan lebih banyak ekstensi yang diusulkan, tetapi ada kebutuhan untuk arsitektur Web formal yang dapat digunakan untuk mengevaluasi dampak dari perubahan ini.
Kelompok kerja W3C dan IETF bersama-sama mulai bekerja untuk membuat deskripsi formal dari tiga standar utama Web: URI, HTTP, dan HTML. Roy Fielding terlibat dalam pembuatan standar ini (khususnya HTTP 1.0 dan 1.1, dan URI), dan selama enam tahun berikutnya ia mengembangkan gaya arsitektur REST, menguji batasannya pada standar protokol Web dan menggunakannya sebagai sarana untuk mendefinisikan perbaikan arsitektur — dan untuk mengidentifikasi ketidaksesuaian arsitektur. Fielding mendefinisikan REST dalam disertasi PhD 2000-nya “Gaya Arsitektur dan Desain Arsitektur Perangkat Lunak Berbasis Jaringan” di UC Irvine.
Untuk membuat gaya arsitektur REST, Fielding mengidentifikasi persyaratan yang berlaku saat membuat aplikasi berbasis jaringan di seluruh dunia, seperti kebutuhan akan penghalang masuk yang rendah untuk memungkinkan adopsi global. Dia juga mensurvei banyak gaya arsitektur yang ada untuk aplikasi berbasis jaringan, mengidentifikasi fitur mana yang dibagikan dengan gaya lain, seperti caching dan fitur client-server, dan yang unik untuk REST, seperti konsep sumber daya. Fielding mencoba mengkategorikan arsitektur yang ada dari implementasi saat ini dan mengidentifikasi aspek mana yang harus dianggap penting untuk persyaratan perilaku dan kinerja Web.
Secara alami, gaya arsitektur tidak tergantung pada implementasi spesifik apa pun, dan sementara REST dibuat sebagai bagian dari pengembangan standar Web, implementasi Web tidak mematuhi setiap batasan dalam gaya arsitektur REST. Ketidaksesuaian dapat terjadi karena ketidaktahuan atau kelalaian, tetapi keberadaan gaya arsitektur REST berarti bahwa mereka dapat diidentifikasi sebelum menjadi standar. Misalnya, Fielding mengidentifikasi penyematan informasi sesi di URI sebagai pelanggaran batasan REST yang dapat berdampak negatif pada caching bersama dan skalabilitas server. Cookie HTTP juga melanggar batasan REST karena dapat menjadi tidak sinkron dengan status aplikasi browser, membuatnya tidak dapat diandalkan; mereka juga berisi data buram yang dapat menjadi perhatian untuk privasi dan keamanan.
Arsitektur REST
Gaya arsitektur REST dirancang untuk aplikasi berbasis jaringan, khususnya aplikasi client-server. Tetapi lebih dari itu, ia dirancang untuk penggunaan skala Internet, sehingga sambungan antara agen pengguna (klien) dan server asal harus seringan (longgar) mungkin untuk memfasilitasi adopsi skala besar.
Hal Ini bisa dicapai dengan membuat lapisan abstraksi di server dengan mendefinisikan sumber daya yang merangkum entitas (misalnya file) di server dan menyembunyikan detail implementasi yang mendasarinya (server file, database, dll.).
Tetapi definisinya bahkan lebih umum dari itu: informasi apa pun yang dapat diberi nama dapat berupa sumber daya: gambar, kueri basis data, layanan temporal (misalnya, “cuaca hari ini di London”), atau bahkan kumpulan sumber daya lainnya.
Pendekatan ini memungkinkan interoperabilitas terbesar antara klien dan server dalam lingkungan skala Internet berumur panjang yang melintasi batas organisasi (kepercayaan).
Klien hanya dapat mengakses sumber daya menggunakan URI. Dengan kata lain, klien meminta sumber daya menggunakan URI dan server merespons dengan representasi sumber daya. Representasi sumber daya adalah konsep penting lainnya dalam REST; untuk memastikan tanggapan dapat ditafsirkan oleh sebanyak mungkin aplikasi klien, representasi sumber daya dikirim dalam format hypertext.
Dengan demikian, sumber daya dimanipulasi melalui representasi hypertext yang ditransfer dalam pesan antara klien dan server.
Pemisahan klien dan server yang kuat bersama dengan transfer informasi berbasis teks menggunakan protokol pengalamatan yang seragam memberikan dasar untuk memenuhi persyaratan Web: ketahanan (skalabilitas anarkis), penyebaran komponen secara independen, transfer data berbutir besar, dan penghalang entri rendah untuk pembaca konten, penulis konten, dan pengembang.
Contoh penggunaan API seperti yang digunakan oleh Bank Raya API, sebuah layanan pembayaran yang disediakan oleh Bank RAYA. Info lengkap baca disini: https://rayatekno.com/2022/05/11/mengenal-raya-api/
*Dari Berbagasi Sumber