Perkembangan Teknologi Informak (TI) sangat pesat dan sering kali digunakan untuk membantu suatu pekerjaan manusia. Sehingga banyak developer menggunakan berbagai macam platform dan bahasa pemograman untuk membuat suatu perangkat lunak.
Sehingga membutuhkan suatu metode pengembang yang dapat mengintegrasikan platform atau bahasa pemograman yang berbeda. Metode TI yang dapat dapat membantu developer dalam melakukan pengembangan layanan perangkat lunak tanpa harus merubah perangkat lunak yang sudah ada adalah REST.
REST didasarkan pada suatu Representational State Transfer(REST), yang menggunakan gaya arsitektur dan pendekatan komunikasi yang sering digunakan dalam suatu pengembangan layanan web. Meskipun REST sering digunakan di hampir setiap semua protokol, akan tetapi biasanya memanfaatkan suatu HTTP/HTTPS ketika digunakan untuk web api.
Hal ini membantu dalam pengembangan web sehingga tidak perlu melakukan penginstalan suatu library atau perangkat lunak tambahan untuk memanfaatkan sebuah desain dari REST. Pada pertama kali REST diperkenalkan oleh Dr. Roy Fielding dalam disertasi doktor pada tahun 2000, REST diperkenalkan karena memiliki fleksibilitasnya yang sangat luar biasa. Data tidak terkait dengan suatu metode dan sumber daya, REST memiliki suatu kemampuan untuk menangani beberapa jenis panggilan, yang dapat mengambalikan format daya yang berbeda dan mengubahnya secara structural tentnya dengan suatu implementasi yang benar.
Table of Contents
Pengertian RESTful
RESTful merupakan implementasi dari suatu Application Programming Interfac(API) yang mempunyai suatu arsitektur yang dapat berkomunikasi menggunakan HTTP/HTTPS untuk sebuah petukaran data dan RESTful ini juga sering diterapkan dalam suatu pengembangan perangkat lunak. Yang dimana bertujuan untuk menjadikan suatu sistem yang memiliki performa yang baik, cepat dan mudah untuk dikembangkan terutama dalam sebuah pertukaran dan komunikasi data.
RESTful server menyediakan suatu resource data dan RESTful client melakukan suatu pengaksesan terhadap resource tersebut dan menampilkanya untuk penggunaan selanjutnya. Pada setiap resource dapat diidentifikasi oleh Universal Resource Indentifiers(URLs). Sehingga resource tersebut dapat direpresentasikan dalam bentuk format data XML atau JSON. RESTful telah banyak digunakan oleh situs-situs seperti Amazon, Google, LinkedIn, Twitter, Facebook dan dll.
Metode HTTP/HTTPS, dan fitur yang digunakan dalam arsitektur RESTful
RESTful memanfaatkan 8 metode di HTTP/HTTPS, yaitu:
- GET merupakan metode HTTP/HTTPS Request yang paling simpel, metode ini digunakan untuk mendapatkan data dari sumber.
- POST merupakan metode HTTP/HTTPS Request yang digunakan untuk membuat suatu data baru dengan menyisipkan data dalam body saat request dilakukan.
- PUT merupakan metode HTTP/HTTPS Request yang biasanya digunakan untuk melakukan suatu update data resource.
- DELETE merupakan metode HTTP/HTTPS Request yang digunakan untuk menghapus suatu data pada resource.
- Metode CONNECT berfungsi untuk membangun terowongan ke server yang diidentifikasi oleh sumber daya target.
- Metode OPSI berfungsi untuk menggambarkan opsi komunikasi untuk sumber daya target.
- Metode TRACE berfungsi untuk melakukan tes loop-back pesan di sepanjang jalan ke sumber daya target.
- Metode PATCH berfungsi untuk menerapkan modifikasi parsial ke sumber daya.
Baca Juga : Pengertian Arsitektur Web Service
RESTful memiliki 3 fitur, yaitu:
- Client menangani front end dan server menangani back end dan keduanya dapat diganti secara independen satu sama lain.
- Stateless memiliki sifat yang tidak ada data klien yang disimpan di server ketika ada permintaan dan status sesi disimpan di klient.
- Cacheable Klien dapat men-cache respon untuk meningkatkan suatu kinerja.
Cara Kerja RESTful
Baca Juga : Mengenal Application Programming Interface (API)
RESTful berkerja dengan cara client mengirimkan suatu data atau request melalui suatu HTTP/HTTPS Request dan nantinya server akan merespon melalui HTTP/HTTPS Response. Sehingga HTTP/HTTPS Reques dan Response memiliki suatu komponen-komponennya sendiri. Pada komponen HTTP/HTTPS Reques memiliki 5 Komponen, yaitu :
- HTTP/HTTPS Verb misalnya menggunakan metode POST, GET, PUT, PATCH, dan DELETE.
- URL digunakan untuk mengindenifikasi suatu lokasi resource pada sebuah server.
- HTTP/HTTPS Version, yang dapat menunjukan versi dari HTTP/HTTPS yang digunakan.
- Reques Header, yang berisikan sebuah metadata untuk HTTP/HTTPS Request.
- Request Body yang merupakan suatu konten dari data.
Sedangkan pada komponen dari HTTP/HTTPS Response memiliki 4 Komponen, yaitu:
- Status pada Response Code, yang digunakan untuk mengindikasikan status server terhadap sebuah resource yang direquest.
- HTTP/HTTPS Version yang digunakan untuk menunjukan suatu versi dari HTTP/HTTPS yang digunakan.
- Response Header yang memiliki suatu metadata untuk HTTP/HTTPS Response.
- Response Body yang digunakan untuk konten dari daya yang diberikan.
Response code yang biasa digunakan pada RESTful
- 200 OK, Response code ini menunjukan bahwa suatu request yang dilakukan berhasil.
- 201 Created, Response code ini menunjukan bahwa suatu request yang dilakukan untuk menambah atau update data berhasil dilakukan. Kode ini biasa digunakan untuk mengkonfirmasi berhasilnya request PUT atau POST.
- 400 Bad Request, Response code ini menunjukan bahwa request yang telah dibuat salah atau data yang akan dikirim tidak ada.
- 401 Unauthorized, Response code ini menunjukan bahwa request yang dibuat membutuhkan suatu authentication sebelum mengakses suatu resource.
- 404 Not Found, Response Code ini menunjukan bahwa resource yang dipanggil tidak dapat ditemukan.
- 405 Method Not Allowed, Response code ini menunjukan bahwa request pada endpoint ada tetapi metode HTTP/HTTPS yang digunakan tidak mengizinkan.
- 409 Conflict, Response code ini menunjukan bahwa request yang akan dibuat terdapat duplikasi, biasanya informasi yang dikirim sudah ada.
- 500 Internal Server Error, Response code ini menunjukan bahwa request yang dilakukan terdapat suatu kesalahan pada sisi server maupun resource.
Format Response
Pada request yang dilakukan pada client yang akan menerima suatu format data response dari server, Respose tersebut biasanya menggunakan format data XML/JSON. Setelah mendapatkan data tersebut dari response client baru bisa menggunakannya dengan caramemparsing data tersebut dan diolah sesuai kebutuhan.
Baca Juga : Penjelasan tentang JavaScript Object Notation (JSON) secara lengkap
Kelebihan dan Kekurangan RESTfull
Kelebihan dari RESTful, yaitu :
- RESTful bisa digunakan oleh bermacam-macam bahasa pemograman dan platform.
- RESTful lebih sederhana atau simpel untuk digunakan ketimbang pada SOAP.
- RESTful mudah untuk dipelajarin dan tidak tergantung pada tools-tools.
- RESTful tidak membutuhkan suatu layer untuk pertukaran pesan tambahan.
- RESTful secara desain dan filosofi lebih dekat dengan web.
Kelemahan dari RESTful, yaitu :
- RESTful meiliki model yang bersifat point-to-point untuk suatu komunikasi. Sehingga tidak dapat digunakan untuk dilingkungan yang komputasi terdistribusi di mana pesan akan melalui satu atau lebih perantara.
- RESTful memiliki kurangnya dukungan dari standar keamanan, kebijakan, keandalan pesan dan dll. Sehingga layanan yang mempunyai suatu pesyaratan lebih canggih sulit untuk dikembangkan.
- RESTful sangat berkaitan dengan model transport HTTP/HTTPS.
- RESTful membutuhkan waktu akses yang lebih lama dibandingkan dengan sebuah native library.
- RESTful keamanan kurang terjamin dikarenakan harus melalui suatu protokol HTTP/HTTPS.