Antarmuka pemrograman aplikasi (API) adalah kontrak yang memungkinkan perangkat lunak untuk mengakses data atau memanggil fungsionalitas yang diungkap oleh perangkat lunak lain.
API hanya mengekspos data dan fungsionalitas yang diperlukan untuk interaksi tertentu, menjaga detail implementasi internal lainnya tetap tersembunyi. Abstraksi ini melindungi integritas sistem dan menyederhanakan bagaimana komponen perangkat lunak berkomunikasi.
Terdapat banyak jenis API—API perangkat keras dan firmware, API sistem operasi, API pustaka dan kerangka kerja, API web, dan banyak lagi—dan secara garis besar, semuanya beroperasi dengan cara yang sama: mereka mendefinisikan kontrak antara dua bagian perangkat lunak, menentukan apa yang dapat diminta dan dikembalikan.
Sebagai penjelas berbasis integrasi, artikel ini terutama berfokus pada API web (jenis API yang memungkinkan perangkat lunak untuk membuat permintaan melalui jaringan, sering menggunakan HTTP), cara kerjanya, perbedaannya dan bagaimana mereka digunakan untuk menghubungkan sistem, menyinkronkan data dan mengotomatiskan alur kerja.
Dapatkan informasi terbaru tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan seterusnya dengan Buletin Think, yang disampaikan dua kali seminggu. Lihat Pernyataan Privasi IBM®.
Sebaiknya pikirkan komunikasi API dalam hal permintaan dan respons antara klien dan server. Aplikasi yang mengirimkan permintaan adalah klien, dan server memberikan respons. API mendefinisikan syarat-syarat komunikasi di antara mereka.
Untuk contoh sederhana, pertimbangkan pemrosesan pembayaran pihak ketiga. Ketika pengguna membeli produk di situs e-commerce, situs tersebut mungkin menyediakan opsi untuk “Bayar dengan PayPal.” Fungsi ini bergantung pada API untuk koneksi ini.
Bagi pengguna akhir, seluruh pertukaran ini tidak terlihat — mereka hanya melihat konfirmasi pembayaran yang berhasil.
API ada di setiap lapisan perangkat lunak, dari dekat dengan perangkat keras hingga layanan web yang berinteraksi dengan kebanyakan orang setiap hari. Dalam banyak percakapan sehari-hari, API digunakan secara sinonim dengan API web. Tetapi ada banyak jenis API yang melayani contoh penggunaan yang berbeda, termasuk:
*Perlu dicatat bahwa beberapa sistem lama mengekspos protokol jaringan—seperti FTP, SMTP, dan SSH— secara langsung sebagai antarmuka integrasi mereka. Secara teknis, semua ini sesuai dengan definisi API yang luas, meskipun API ini dikategorikan berdasarkan cara mereka berkomunikasi, daripada apa yang mereka hadapi, dan kurang relevan dengan diskusi yang berfokus pada integrasi.
API Web adalah yang paling umum untuk integrasi. Tidak seperti jenis API lain yang tercantum di atas, API ini dirancang untuk komunikasi antara aplikasi terpisah melalui jaringan.
REST adalah gaya arsitektur dominan untuk API web saat ini. API REST, juga dikenal sebagai API RESTful, bergantung pada enam batasan arsitektur utama yang pertama kali didefinisikan oleh Roy Fielding untuk pembuatan layanan web yang dapat diskalakan, fleksibel, dan terpisah.
REST membuat data tersedia sebagai sumber daya, dan REST API menggunakan metode HTTP seperti GET, POST, PUT, PATCH, dan DELETE untuk berinteraksi dengan sumber daya ini. Setiap sumber daya diidentifikasi oleh URI unik, biasanya disebut sebagai titik akhir API. Ini adalah alamat spesifik tempat klien mengirimkan permintaan API.
REST didefinisikan oleh batasan berikut:
Untuk penjelasan lebih lengkap tentang prinsip REST, klik di sini.
SOAP adalah protokol pesan berbasis XML dengan standar ketat tentang bagaimana pesan disusun dan dikirim. Tidak seperti REST API, yang dalam praktiknya berjalan hampir secara eksklusif melalui HTTP, SOAP bersifat transpor-agnostik. SOAP ini dapat beroperasi melalui HTTP, SMTP dan protokol lainnya, membuatnya lebih fleksibel di lingkungan perusahaan di mana HTTP tidak selalu merupakan protokol yang mendasarinya.
Pesan SOAP memiliki struktur kaku yang menentukan bagaimana pesan harus diproses, membuat SOAP lebih bertele-tele daripada REST, tetapi juga lebih standar. Standar formal SOAP, penanganan kesalahan bawaan, dan spesifikasi keamanan yang kaku tetap berharga dan mendorong penggunaannya yang berkelanjutan saat ini di industri seperti keuangan dan perawatan kesehatan.
RPC mendahului API web dan memiliki implementasi lama dan modern. RPC, kadang-kadang disebut panggilan subrutin atau panggilan fungsi, memungkinkan aplikasi untuk menjalankan fungsi atau metode pada server jarak jauh seolah-olah itu lokal. RPC diatur di sekitar tindakan, bukan sumber daya. Alih-alih URI individu untuk setiap sumber daya, API RPC biasanya mengekspos satu titik akhir dan menentukan tindakan dalam muatan permintaan.
Pendahulu langsung JSON-RPC, XML-RPC menggunakan XML untuk menyandikan panggilan dan tanggapannya. Pendahulu ini lebih lama dari SOAP tetapi lebih sederhana, sehingga lebih mudah diimplementasikan—meskipun verbositas XML membuatnya lebih berat daripada alternatif berbasis JSON. Ini pada dasarnya adalah nenek moyang langsung dari JSON-RPC.
JSON-RPC bekerja dengan cara yang sama seperti XML-RPC tetapi menggunakan JSON alih-alih XML. JSON lebih ringkas dan lebih mudah diurai daripada XML, membuat JSON-RPC lebih ringan dan lebih mudah dibaca daripada pendahulunya.
gRPC adalah tingkat modern dan kinerja tinggi dalam keluarga RPC. Awalnya dikembangkan oleh Google dan sekarang dipertahankan sebagai proyek sumber terbuka. Di mana implementasi RPC lama menggunakan format berbasis teks, gRPC menggunakan Protocol Buffers (atau Profobuf), format serialisasi biner yang menghasilkan pesan yang lebih kecil dan lebih cepat daripada JSON atau XML.
Sistem ini juga berjalan di atas HTTP/2 daripada HTTP/1.1, menambahkan manfaat kinerja lebih lanjut. gRPC umumnya digunakan untuk komunikasi layanan mikro internal dan mendukung streaming dua arah, sehingga ia menjadi pilihan yang kuat untuk aliran data real-time.
GraphQL adalah bahasa kueri sumber terbuka dan waktu proses bagian server yang dikembangkan oleh Facebook pada tahun 2012 untuk memfasilitasi pengambilan sumber daya yang lebih efisien. Bahasa ini dirancang untuk menghilangkan penerimaan berlebih (menerima lebih banyak data daripada yang diperlukan) dan kurang penerimaan (memerlukan beberapa permintaan untuk menerima data yang diperlukan) dengan memungkinkan klien menentukan dengan tepat data apa yang mereka inginkan. GraphQL menggunakan titik akhir tunggal di mana klien dapat menanyakan beberapa sumber daya, dengan hasil dikembalikan dalam satu respons.
Meskipun sangat fleksibel, GraphQL lebih rumit daripada REST, dan paling banyak digunakan di lingkungan yang kompleks di mana persyaratan data klien bervariasi secara signifikan.
Baca perbandingan REST vs GraphQL yang lebih mendalam di sini.
Semua API yang disebutkan di atas mengikuti model permintaan/respons yang diprakarsai oleh klien. Dua pengecualian penting perlu diperhatikan dalam konteks integrasi:
API publik sepenuhnya terpapar ke internet dan tersedia untuk pengembang atau organisasi mana pun, umumnya tanpa batasan atau batasan minimal. Pengembang mungkin diminta untuk mendapatkan kunci API, tetapi sebaliknya, tidak banyak yang diperlukan untuk bekerja dengan API ini. API ini dirancang untuk mendorong integrasi eksternal dan pengembangan pihak ketiga.
*Jangan bingung dengan "OpenAPI Specification (OAS)," yang dapat Anda pelajari lebih lanjut di sini.
API pribadi tidak tersedia untuk umum dan hanya dapat diakses dalam organisasi yang ditentukan. API ini sering diisolasi di jaringan pribadi dan memerlukan otentikasi ketat untuk akses. Organisasi biasanya menggunakan API tersebut untuk menghubungkan sistem perangkat lunak internal.
Dari perspektif akses, API mitra berada di antara API publik dan pribadi karena tersedia untuk kelompok mitra bisnis resmi tertentu. Meskipun API ini dapat dijangkau melalui internet publik, API ini tidak tersedia untuk umum, dan akses hanya diberikan kepada pengguna yang berwenang. API mitra digunakan untuk hal-hal seperti berbagi data B2B atau untuk memonetisasi aliran data, serta penggunaannya sering diatur oleh perjanjian mitra tertentu.
*API komposit terkadang disertakan dalam perincian tipe akses ini tetapi lebih dipahami sebagai pola arsitektur daripada tingkat akses. API komposit menggabungkan panggilan API, dan API ini dapat bersifat publik, pribadi, atau mitra. API komposit ini dibahas lebih lanjut di bagian API dan layanan mikro.
Desain API adalah proses pengambilan keputusan yang menentukan bagaimana API mengekspos data dan fungsionalitas. Dalam proses desain, tim memutuskan protokol dan gaya arsitektur apa yang akan digunakan API, menetapkan konvensi yang konsisten untuk penamaan, struktur respons dan penanganan kesalahan, memutuskan bagaimana akses akan diautentikasi dan diotorisasi, dan menentukan strategi pembuatan versi untuk mengelola perubahan yang melanggar. Semua ini dan banyak keputusan lainnya membentuk cara kerja API dan bagaimana pengembang berinteraksi dengannya.
Pada dasarnya, ini adalah proses yang dimulai dengan pertanyaan seperti, “Bagaimana API ini akan digunakan?” dan bergerak maju untuk mengembangkan cetak biru desain untuk API yang memenuhi kebutuhan organisasi.
Kebijakan tata kelola API organisasi sering menentukan desain API. Tata kelola API mengacu pada seperangkat standar, kebijakan, dan praktik komprehensif yang mengarahkan bagaimana organisasi mengembangkan, menerapkan, dan menggunakan API. Desain API yang efektif menghasilkan API yang mematuhi kebijakan yang telah ditentukan sebelumnya.
Dokumentasi API seperti manual instruksi teknis yang menyediakan informasi tentang API, seperti protokol yang didukung, bahasa dan metode otentikasi, cuplikan kode, definisi struktural, dan informasi lain yang diperlukan bagi pengembang untuk bekerja dengan API. Dokumentasi API yang komprehensif dan terkini mempromosikan pengalaman API yang lebih baik bagi pengembang serta mendorong adopsi, integrasi, dan manajemen API yang sukses.
API-first (atau API-design first) adalah pendekatan pengembangan perangkat lunak di mana API diperlakukan sebagai dasar aplikasi, dirancang sebelum kode aplikasi ditulis. Alih-alih memulai dengan logika bisnis backend dan struktur basis data, organisasi menentukan kontrak terlebih dahulu — sering menggunakan spesifikasi API seperti OpenAPI— dan membangun sisa aplikasi di sekitarnya.
Ini adalah pendekatan yang disukai untuk organisasi yang padat integrasi, disukai karena skalabilitas, keandalan, dan konsistensinya: API adalah sumber kebenaran, dan semua konsumen—aplikasi web dan seluler, perangkat Internet of Things (IoT), aplikasi AI dan model, dan sistem lainnya—berinteraksi dengan lapisan API yang sama daripada integrasi yang dipesan lebih dahulu.
Beberapa organisasi memperlakukan desain API terlebih dahulu dan API terlebih dahulu sebagai pendekatan yang berbeda, dengan yang terakhir menjadi fungsi organisasi yang lebih luas yang memperlakukan API sebagai produk itu sendiri, dengan siklus hidup, manajer produk, dan peta jalan mereka sendiri.
Layanan mikro adalah gaya arsitektur yang membagi aplikasi menjadi layanan independen yang lebih kecil. Layanan ini berkomunikasi melalui API, seringkali campuran protokol dan gaya: misalnya, REST API untuk layanan yang menghadap ke eksternal, gRPC untuk komunikasi antar-layanan internal dan webhook untuk alur berbasis peristiwa. Arsitektur layanan mikro memberi pengembang fleksibilitas untuk memilih kerangka kerja yang bekerja paling baik untuk layanan tertentu.
gRPC juga memungkinkan pengembang untuk menguji, menerapkan, memperbarui, mengintegrasikan, memelihara, dan menskalakan layanan secara independen satu sama lain. Isolasi kesalahan disederhanakan — kegagalan komponen tunggal tidak merusak seluruh aplikasi—dan karena layanan digabungkan secara longgar, implementasi internal dapat berubah dengan gangguan integrasi.
Salah satu masalah layanan mikro yang umum adalah apa yang dikenal sebagai masalah “front end obrolan”. Dalam aplikasi tradisional, data hidup dalam satu basis data dan klien dapat menanyakan basis data ini dengan satu panggilan. Dalam layanan mikro, data tersebar di banyak layanan, yang dapat mengharuskan klien untuk berkomunikasi dengan lusinan layanan, melalui lusinan permintaan terpisah, untuk mendapatkan data yang dibutuhkannya. API komposit memecahkan masalah ini dengan menyajikan titik akhir terpadu yang berfungsi sebagai lapisan orkestrasi, mengirimkan permintaan klien, berkomunikasi dengan berbagai layanan backend untuk mengumpulkan data yang diminta, dan mengembalikannya ke klien dalam satu payload.
API komposit meniadakan kebutuhan klien untuk melakukan beberapa panggilan pulang-pergi untuk satu operasi. API ini juga menyembunyikan kompleksitas sistem internal: klien tidak perlu tahu layanan mikro mana yang menangani data mana, hanya bagaimana mencapai titik akhir komposit. Dan API ini dapat mengurangi latensi, karena panggilan tunggal yang mengandalkan komunikasi layanan mikro internal biasanya lebih cepat daripada beberapa panggilan pulang-pergi melalui jaringan eksternal.
Untuk semua manfaatnya, arsitektur layanan mikro memperluas permukaan API dan menambah kompleksitas, menyoroti pentingnya API Management yang kuat.
API Management adalah proses mempublikasikan, mengamankan, mengendalikan, dan memantau API sepanjang siklus hidupnya. Pekerjaan ini biasanya terpusat melalui platform API Management yang membantu organisasi menegakkan kebijakan yang konsisten di semua API mereka. Banyak dari platform ini juga menyertakan alat desain dan dokumentasi, meskipun bagian ini berfokus pada peran operasional manajemen.
API Management mencakup pengawasan terhadap:
API Gateway adalah lapisan perangkat lunak yang menyajikan satu titik masuk bagi klien untuk mengakses beberapa layanan backend. Layanan ini mencegah klien dari harus memahami atau berinteraksi dengan kompleksitas arsitektur di balik gateway dan digunakan untuk menjinakkan proliferasi API yang dibuat oleh layanan mikro.
Fungsi utama termasuk routing, otentikasi, pembatasan laju, dan pemantauan. Gateway juga dapat menangani agregasi permintaan, yang menjadikannya tempat umum untuk mengimplementasikan API komposit.
Keamanan API adalah serangkaian praktik dan prosedur yang melindungi API dan data yang ditransmisikan dari penyalahgunaan, serangan bot jahat, dan ancaman keamanan siber lainnya. Keamanan API termasuk otentikasi (memverifikasi identitas pengguna), otorisasi (menentukan apa yang diizinkan untuk mereka lakukan), enkripsi, validasi input, dan banyak lagi. Teknologi keamanan umum termasuk kunci API dan OpenID Connect (ODIC) untuk otentikasi dan OAuth untuk otorisasi. Postur keamanan API yang kuat membantu memastikan bahwa hanya pengguna dan aplikasi resmi yang mengakses API.
Pembatasan laju dan pelambatan mengontrol volume dan aliran permintaan API untuk membantu menjaga sistem tetap stabil dan tersedia. Pembatasan laju membatasi jumlah panggilan yang dapat dilakukan klien individu dalam periode tertentu, dan pelambatan mengelola volume panggilan yang diterima sistem, umumnya dengan memperlambat atau mengantrekan permintaan. Batas laju juga melayani fungsi komersial, sehingga organisasi dapat menerapkan tingkatan penggunaan untuk API berbayar.
Meskipun pada dasarnya hal ini merupakan masalah operasional, pembatasan dan pelambatan juga memiliki peran keamanan sekunder, membantu menggagalkan serangan penolakan layanan (denial-of-service) dan pencurian kredensial (credential-stuffing).
API Management memberlakukan strategi pembuatan versi yang ditetapkan dalam desain. Platform manajemen memungkinkan organisasi untuk merutekan lalu lintas ke versi API yang benar, menjalankan beberapa versi secara bersamaan, dan mengelola penghentian versi lama. Hal ini memungkinkan tim meluncurkan pembaruan dan versi baru—bahkan merusak perubahan—sambil memberikan waktu bagi integrasi yang ada untuk bermigrasi tanpa gangguan.
API adalah jaringan penghubung antara sistem perusahaan, layanan, dan mitra, dan sangat penting untuk memahami cara kerjanya. API yang gagal dapat menyebabkan masalah dengan setiap integrasi yang bergantung padanya; pemantauan dan pengamatan membantu tim deteksi dan mendiagnosis masalah tersebut sebelum mereka mengalir ke seluruh sistem yang terhubung.
Pemantauan API melacak kinerja, ketersediaan, fungsionalitas, dan penggunaan API, memberikan peringatan ketika metrik seperti latensi atau tingkat kesalahan melewati ambang batas yang telah ditentukan. Observabilitas memperluas kemampuan pemantauan, menggunakan metrik, log, dan jejak untuk mendapatkan pemahaman yang lebih mendalam tentang kesehatan sistem dan mengungkap informasi yang tidak terdeteksi oleh pemantauan.
Memahami penggunaan API membantu tim merencanakan kapasitas, mengatasi potensi ancaman, serta mematuhi persyaratan pemerintah dan peraturan.
API menghubungkan aplikasi perangkat lunak, sistem, dan alur kerja untuk pertukaran data dan layanan, fungsi yang sering disebut dengan integrasi API. Dalam sebagian besar integrasi modern, API adalah pusat pergerakan informasi antara layanan dan sistem.
Contoh penggunaan umum perusahaan meliputi:
API memungkinkan tim untuk mengintegrasikan layanan pihak ketiga ke dalam aplikasi dan alur kerja mereka. Misalnya, jika sebuah perusahaan saus pedas ingin menyertakan peta pencari toko di situs webnya yang menampilkan pengecer mitra, mereka dapat menggunakan API dari aplikasi pemetaan untuk menyematkan informasi tersebut di situsnya.
Organisasi menggunakan API untuk berbagi data dan layanan dengan mitra, pemasok, dan pelanggan. Perusahaan logistik mungkin menggunakan API untuk mengekspos informasi pelacakan pesanan sehingga pengecer dapat memasukkannya ke dalam sistem mereka sendiri.
Organisasi menggunakan API untuk memfasilitasi pertukaran data antara sistem perusahaan—seperti manajemen hubungan pelanggan (CRM) dan platform perencanaan sumber daya perusahaan (ERP). Jika alamat pelanggan diperbarui di platform CRM, perubahan ini dapat secara otomatis disebarkan di seluruh sistem yang terhubung.
API digunakan untuk mengakses alat AI seperti model bahasa besar (LLM) dan model machine learning, dan untuk memasukkannya ke dalam aplikasi dan alur kerja. Mengintegrasikan model AI berfungsi seperti integrasi pihak ketiga lainnya: alih-alih tim harus membangun dan melatih model kompleks secara internal, mereka dapat menggunakan API untuk mengakses model eksternal.
Agen AI juga menggunakan API untuk mengakses layanan dan menyelesaikan tugas, tetapi mereka bekerja secara berbeda dari integrasi tradisional di mana pengembang memutuskan terlebih dahulu API mana yang akan dipanggil dan bagaimana memanggilnya. Agen AI membuat keputusan ini saat waktu proses dan harus bebas untuk menganalisis suatu masalah, memilih alat, dan menjelajahi berbagai solusi dengan cepat. Agen ini membutuhkan cara yang konsisten untuk menemukan alat dan memahami cara menggunakannya.
Protokol Konteks Model (MCP), standar sumber terbuka yang diperkenalkan oleh Anthropic dan sekarang diatur oleh Linux Foundation, menghubungkan model dan agen AI dengan aplikasi dan sistem eksternal, mengatasi kesenjangan ini. Server MCP biasanya berada di atas API yang ada sebagai “penerjemah universal”, yang menggambarkan kemampuan alat dengan cara standar yang dapat digunakan oleh aplikasi AI yang kompatibel dengan MCP. Alih-alih membangun integrasi khusus antara setiap aplikasi AI dan setiap alat, pengembang dapat membangun satu server MCP untuk alat tertentu dan membuatnya tersedia untuk agen yang kompatibel. MCP sering dibandingkan dengan port USB-C untuk aplikasi AI, menyediakan satu konektor standar, bukan banyak konektor khusus.
Aplikasi seluler dan aplikasi web menggunakan API untuk berkomunikasi dengan backend mereka dan mengambil data atau memicu tindakan tanpa pernah mengakses basis data atau logika bisnis secara langsung. Organisasi dapat membangun fungsionalitas backend sekali dan menggunakan API untuk melayani klien web, iOS, dan Android. Saluran baru dapat ditambahkan tanpa harus membangun kembali backend.
Beberapa organisasi mengambil langkah lebih jauh dengan pendekatan backend-for-frontend yang menambahkan lapisan khusus klien tipis di atas API bersama sambil menjaga logika bisnis inti di satu tempat.
Beberapa aplikasi tidak bisa menunggu klien untuk meminta informasi. API real-time dan berbasis peristiwa membalikkan hubungan, mendorong informasi segera setelah berubah atau ketika peristiwa tertentu terjadi, daripada menunggu klien berulang kali meminta pembaruan.
Webhook memberi tahu sistem yang terhubung pada peristiwa tertentu, sementara streaming WebSockets dan gRPC mempertahankan koneksi berkelanjutan untuk aliran data yang sedang berlangsung. Bersama-sama, mereka mendukung platform perdagangan keuangan, sistem obrolan, permainan multipemain, dan pertukaran data sensor IoT, menjaga sistem tetap terkini tanpa perlu polling konstan.
Mengembangkan, mengelola, mengamankan, dan mensosialisasikan semua jenis antarmuka pemrograman aplikasi (API) Anda dengan lancar, di mana pun mereka berada.
Berdayakan bisnis Anda melalui konektivitas dan otomatisasi yang mulus dengan perangkat lunak platform integrasi.
Buka potensi penuh hybrid cloud di era AI agen.