Cara mudah untuk memahami cara kerja API adalah dengan melihat contoh umum-pembayaran
pihak ketiga
pemrosesan. Ketika pengguna membeli produk di situs e-niaga, mereka mungkin diminta untuk "Bayar
dengan Paypal" atau jenis sistem pihak ketiga lainnya. Fungsi ini bergantung pada API untuk membuat
koneksi.
Ketika pembeli mengklik tombol pembayaran, sebuah API akan memanggil untuk mengambil informasi-
juga dikenal sebagai permintaan. Permintaan ini diproses dari aplikasi ke server web melalui Uniform
Resource Identifier (URI) API dan menyertakan kata kerja permintaan, header, dan terkadang, badan
permintaan.
Setelah menerima permintaan yang valid dari halaman web produk, API melakukan panggilan ke
program eksternal atau server web, dalam hal ini, sistem pembayaran pihak ketiga. Server
mengirimkan respons ke API dengan informasi yang diminta. API mentransfer data ke aplikasi yang
meminta awal, di sini situs web produk.
Meskipun transfer data akan berbeda tergantung pada layanan web yang digunakan, permintaan dan
respons semuanya terjadi melalui API. Tidak ada visibilitas pada antarmuka pengguna, yang berarti API
bertukar data di dalam komputer atau aplikasi, dan tampak oleh pengguna sebagai koneksi yang mulus.
Manfaat API
API menyederhanakan desain dan pengembangan aplikasi dan layanan baru, serta integrasi dan
manajemen yang sudah ada. Namun, mereka juga menawarkan manfaat signifikan lainnya bagi para
pengembang dan organisasi pada umumnya.
Rata-rata perusahaan menggunakan hampir 1.200 aplikasi cloud (tautan berada di luar ibm.com),
banyak di antaranya yang terputus. API memungkinkan integrasi sehingga platform dan aplikasi ini dapat
berkomunikasi dengan lancar satu sama lain. Melalui integrasi ini, perusahaan dapat mengotomatiskan
alur kerja dan
meningkatkan kolaborasi di tempat kerja. Tanpa API, banyak perusahaan tidak akan memiliki
konektivitas, sehingga menyebabkan silo informasi yang mengganggu produktivitas dan kinerja.
API menawarkan fleksibilitas, yang memungkinkan perusahaan untuk menjalin hubungan dengan mitra
bisnis baru dan menawarkan layanan baru ke pasar yang sudah ada. Fleksibilitas ini memungkinkan
perusahaan untuk, pada akhirnya, mengakses pasar baru yang dapat menghasilkan keuntungan besar
dan mendorong transformasi digital. Sebagai contoh, perusahaan Stripe
dimulai sebagai API dengan hanya tujuh baris kode. Sejak saat itu, perusahaan ini telah bermitra dengan
banyak perusahaan terbesar di dunia. Stripe telah melakukan diversifikasi untuk menawarkan pinjaman
dan kartu korporat, dan bernilai USD 36 miliar (tautan berada di luar ibm.com).
Monetisasi data
Banyak perusahaan memilih untuk menawarkan API secara gratis, setidaknya pada awalnya, sehingga
mereka dapat membangun audiens pengembang di sekitar merek mereka dan menjalin hubungan
dengan mitra bisnis potensial. Jika API memberikan akses ke aset digital yang berharga, bisnis
memonetisasinya dengan menjual akses tersebut. Praktik ini disebut sebagai ekonomi API. Ketika
AccuWeather (tautan berada di luar ibm.com) meluncurkan portal pengembang swalayan untuk
menjual berbagai macam paket API, hanya perlu waktu 10 bulan untuk menarik 24.000 pengembang
dan menjual 11.000 kunci API. Langkah ini membantu membangun komunitas yang berkembang dalam
prosesnya.
Keamanan sistem
API memisahkan aplikasi yang meminta dari infrastruktur layanan yang merespons, dan menawarkan
lapisan keamanan di antara keduanya saat berkomunikasi. Sebagai contoh, panggilan API biasanya
memerlukan kredensial autentikasi. Header HTTP, cookie, atau string kueri dapat memberikan keamanan
tambahan selama pertukaran data. Dan gateway API dapat mengontrol akses untuk meminimalkan
ancaman keamanan.
API memberikan perlindungan tambahan dalam sebuah jaringan. API juga dapat memberikan lapisan
perlindungan lain untuk pengguna pribadi. Ketika sebuah situs web meminta lokasi pengguna, yang
disediakan melalui API lokasi, pengguna kemudian dapat memutuskan apakah akan mengizinkan atau
menolak permintaan ini. Banyak peramban web dan sistem operasi seluler, seperti iOS, memiliki struktur
izin bawaan ketika API meminta akses ke aplikasi dan datanya. Ketika aplikasi harus mengakses file
melalui API, sistem file seperti windows, Mac dan Linux menggunakan izin untuk akses tersebut.
Jenis-jenis API
Saat ini, sebagian besar API adalah API web yang mengekspos data dan fungsionalitas aplikasi melalui
internet. Berikut adalah empat jenis utama API web:
API terbuka adalah antarmuka pemrograman aplikasi sumber terbuka yang dapat Anda akses dengan
protokol HTTP. Juga dikenal sebagai API publik, API ini telah mendefinisikan titik akhir API serta format
permintaan dan respons.
API mitra menghubungkan mitra bisnis strategis. Biasanya, pengembang mengakses API ini dalam mode
swalayan melalui portal pengembang API publik. Namun, mereka harus menyelesaikan proses orientasi
dan mendapatkan kredensial masuk untuk mengakses API mitra.
API internal tetap tersembunyi dari pengguna eksternal. API privat ini tidak tersedia bagi pengguna di
luar perusahaan dan dimaksudkan untuk meningkatkan produktivitas dan komunikasi di seluruh tim
pengembangan internal yang berbeda.
API komposit menggabungkan beberapa API data atau layanan. API ini memungkinkan pemrogram
untuk mengakses beberapa titik akhir dalam satu panggilan. API komposit berguna dalam arsitektur
layanan mikro di mana untuk melakukan satu tugas mungkin memerlukan informasi dari beberapa
sumber.
Seiring dengan meningkatnya penggunaan API web, hal ini telah mengarah pada
pengembangan protokol tertentu. Protokol-protokol ini memberikan pengguna seperangkat
aturan yang ditetapkan, atau spesifikasi API yang membuat perintah dan sintaksis tipe data
yang dapat diterima. Pada dasarnya, protokol API ini memfasilitasi pertukaran informasi
yang terstandardisasi.
SOAP (Protokol Akses Objek Sederhana): Dibangun dengan XML, SOAP memungkinkan titik
akhir untuk mengirim dan menerima data melalui SMTP dan HTTP. SOAP API
memudahkan untuk berbagi informasi antara aplikasi atau komponen perangkat lunak yang
berjalan di lingkungan yang berbeda atau ditulis dalam bahasa yang berbeda.
XML-RPC (Panggilan Prosedur Jarak Jauh XML): Protokol XML-RPC bergantung pada format
XML tertentu untuk mentransfer data. XML-RPC lebih tua daripada SOAP, tetapi jauh
lebih sederhana, dan relatif ringan karena menggunakan bandwidth minimum.
JSON-RPC: Seperti XML-RPC, JSON-RPC adalah panggilan prosedur jarak jauh, tetapi JSON
(JavaScript Object Notation) digunakan sebagai pengganti XML untuk mentransfer data.
REST (Representational State Transfer): REST adalah seperangkat prinsip arsitektur API
web.
API REST-juga dikenal sebagai API RESTful)-adalah API yang mematuhi REST tertentu
kendala arsitektur. Anda dapat membangun RESTful API dengan protokol SOAP, tetapi
kedua standar ini biasanya dipandang sebagai spesifikasi yang bersaing.
Secara tradisional, API mengacu pada antarmuka yang terhubung ke aplikasi yang dibuat
dengan bahasa pemrograman tingkat rendah, seperti JavaScript. Akan tetapi, API modern
mengikuti prinsip-prinsip REST dan format JSON. API biasanya dibuat untuk HTTP,
sehingga menghasilkan antarmuka yang ramah pengembang yang mudah diakses dan
dipahami secara luas oleh aplikasi yang ditulis dalam Java, Ruby, Python, dan banyak
bahasa lainnya.
Layanan web adalah komponen perangkat lunak yang dapat diakses dan memfasilitasi
transfer data melalui alamat web. Karena layanan web mengekspos data dan fungsionalitas
aplikasi ke aplikasi lain, pada dasarnya, setiap layanan web adalah API. Namun, tidak
semua API adalah layanan web.
API adalah komponen perangkat lunak apa pun yang berfungsi sebagai perantara antara
dua aplikasi yang tidak terhubung. Meskipun layanan web juga menghubungkan aplikasi,
namun membutuhkan jaringan untuk melakukannya. Jika beberapa API bersifat open source,
layanan web biasanya bersifat pribadi dan hanya mitra yang disetujui yang dapat
mengaksesnya.
Layanan mikro adalah gaya arsitektur yang membagi aplikasi menjadi komponen-
komponen yang lebih kecil dan independen (juga disebut layanan mikro), yang terhubung
menggunakan REST API. Membangun aplikasi sebagai kumpulan layanan terpisah
memungkinkan pengembang untuk bekerja pada satu komponen aplikasi yang tidak
bergantung pada yang lain, dan membuat aplikasi lebih mudah untuk diuji, dipelihara, dan
diskalakan.
Arsitektur layanan mikro telah menjadi semakin lazim dengan munculnya komputasi awan
dan, bersama dengan kontainer dan Kubernetes, menjadi dasar bagi pengembangan
aplikasi cloud-native.