API, Web Service, Rest
API, Web Service, Rest
o API
API (Application Programming Interface), adalah sebuah interface yang berperan untuk
mengintegrasikan dua bagian dari aplikasi atau dengan aplikasi yang berbeda secara
bersamaan agar kedua bagian tersebut bisa berkomunikasi satu sama lain. API terdiri dari
berbagai elemen seperti function, protocols, dan tools lainnya yang memungkinkan
developers untuk membuat aplikasi. Tujuan penggunaan API adalah untuk mempercepat
proses development dengan menyediakan function secara terpisah sehingga developer
tidak perlu membuat fitur yang serupa.
o Web Service
Pada dasarnya Web Service adalah API, namun interaksi antara kedua mesin melewati
suatu jaringan. Biasanya “HTTP” adalah protocol yang paling banyak dipakai untuk
berkomunikasi. Web service biasa bertipe SOAP atau REST. Sedangkan API bisa memakai
semua tipe untuk menjalankan komunikasi.
o RESTful API
RESTful API adalah API (termasuk web service) yang menerapkan konsep metode REST,
di mana REST itu kependakan dari REpresentational State Transfer yang merupakan standar
arsitektur berbasis web yang menggunakan protokol HTTP untuk berkomunikasi data. REST
merupakan standar arsitektur komunikasi berbasis web yang sering diterapkan dalam
pengembangan layanan berbasis web, menggantikan SOAP di tahun 2000, setelah
diperkenalkan oleh Roy Fielding. Kelebihan dari REST adalah
light weight
SDK atau framework tidak diperlukan
lebih sederhana/simpel untuk dikembangkan ketimbang SOAP
highly scalable
Tidak store the state ke memory, hanya perlu load balancer untuk ngebagi load
The server end of REST is stateless, which means that the server doesn't have to
store anything across requests. This means that there doesn't have to be (much)
communication between servers, making it horizontally scalable.
maintainable
o JSON
JSON adalah format pertukaran data yang ringan, mudah dibaca dan ditulis. JSON
merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena
menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C,
C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON
ideal sebagai bahasa pertukaran-data, dan umum digunakan dalam pertukaran data /
komunikasi api saat ini.
Karakteristik JSON :
Mudah melakukan read dan write JSON
lightweight text-based interchange format
JSON tidak bergantung pada bahasa pemrograman
Contoh :
{
"books": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id":"07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}
]
}
o Method
Dalam penerapan REST, ada method yang digunakan untuk membedakan kegunaan dari
satu URI.
o URI
Dalam REST, representasi data disebut Resource. Salah satu komponen penyusun
pemanggilan request rest adalah URI (Uniform Resource Identifiers). URI digunakan untuk
memberi alamat pada resource. URI yang baik akan dapat mudah dimengerti dan mudah
dipakai.
Resource bisa berupa singleton atau collection
Contohnya,
“/customers” untuk resource bertipe collection
“/customer” untuk resource bertipe singleton
“/customers/{customerId}” juga bisa mengidentifikasi single customer