Halo sobat dira, setelah kemarin kita menikmati belajar struktur data, sekarang kita beralih ke API, kenapa API ? karena dalam pengembangan aplikasi API sangat penting, dengan API kita bisa menghubungakan satu aplikasi dengan aplikasi lainnya. API dapat menjadi “jembatan” untuk mengakses sumber daya dari aplikasi tertentu.
RESTful API
REST singkatan dari Representational State Transfer ,merupakan standar arsitektur komunikasi berbasis web yang umumnya menggunakan protokol HTTP untuk melakukan komunikasi antar data. Dalam arsitektur nya,Rest server yang menyediakan sumber daya dan Rest client yang digunakan untuk mengakses , dan menampilkan sumber daya tersebut yang dimana di setiap sumber daya nya tersedia Universal Resource Identifier (URI) atau global id.
Setiap sumber daya yang ada pada node.js dapat direpresentasikan dalam bentuk teks, json, ataupun xml.
API (Application Programming Interface) merupakan antar muka yang digunakan untuk “menjembatani” atau menghubungkan antara satu aplikasi dengan aplikasi lainnya. API secara explisit memanfaatkan metodologi HTTP yang ditentukan oleh protokol RFC 2616, yang berarti dalam pengembangannya API kita bisa memanfaatkan method-method yang ada pada HTTP. Method-method HTTP yang dapat digunakan antara lain :
- GET
- POST
- PUT
- DELETE
dari setiap method-method tersebut dapat kita gunakan untuk melakukan create,read,update,delete.
Lalu apa itu RESTful ?
Sebuah API dapat dikatakan RESTful apabila memenuhi 6 aturan dibawah ini :
- Client-Server
Maksud dari aturan ini yaitu, pada dasarnya aplikasi client dan aplikasi server harus dapat berkembang secara terpisah tanpa ketergantungan satu sama lain.
Servers and clients may also be replaced and developed independently, as long as the interface between them is not altered.
2. Stateless
API bersifat stateless, artinya server tidak akan menyimpan data apa pun tentang permintaan HTTP terbaru yang dibuat klien yang berarti, API memperlakukan setiap request baru yang berarti Tidak ada sesi, tidak ada riwayat yang ditambahkan ketika ada request baru.
No client context shall be stored on the server between requests. The client is responsible for managing the state of the application.
3. Cacheable
Caching dapat membawa peningkatan kinerja untuk client-side dan dapat mencakup skalabilitas yang lebih baik untuk server karena beban yang ada pada server telah berkurang.Maka dari itu, setiap sumber daya harus mendeklarasikan diri nya bahwa dirinya sendiri cacheable.
Caching sendiri dapat di implementasikan di dalam server ataupun client-side
4. Uniform Interface
Pada aturan ini, ada 4 hal yang harus dipenuhi yaitu :
- request ke server harus mengandung sebuah resource identifier
- respons yang diberikan server mengandung informasi yang cukup untuk client memodifikasi resource tersebut
- Setiap request ke API mengandung semua informasi yang dibutuhkan server untuk melaksanakan request tersebut, dan setiap respons yang diberikan server mengandung semua informasi yang dibutuhkan client untuk memahami respons tersebut
- engine yang digunakan sebagai application state menggunakan hypermedia
5. Layered System
REST memungkinkan Anda menggunakan layer system architecture, yang dimana layered system bekerja dengan cara berlapis misal, kalian menyimpan API kalian pada server A, kemudian kalian dapat menyimpan data di server B, dan melakukan authenticate requests pada server C.
6. Code on Demand (optional)
Aturan yang terakhir yaitu, code on demand , aturan ini bersifat optional jadi, kalian bisa menerapkannya bisa tidak. Dalam pengembangan API mungkin kalian memakai sebagian besar waktu anda dalam mengirim representasi statis dalam bentuk xml atau json, tetapi kalian bebas melakukan return sesuai kebutuhan aplikasi kalian.
All the above constraints help you build a truly RESTful API, and you should follow them. Still, at times, you may find yourself violating one or two constraints. Do not worry; you are still making a RESTful API — but not “truly RESTful.”
Sekian dari kami, terimakasih sudah membaca jangan lupa share terimakasih :)
Referensi :