Diterbitkan: 09 April 2024
Kontributor: Michael Goodwin
API, atau antarmuka pemrograman aplikasi, adalah seperangkat aturan atau protokol yang memungkinkan aplikasi perangkat lunak untuk berkomunikasi satu sama lain untuk bertukar data, fitur, dan fungsionalitas.
API menyederhanakan dan mempercepat pengembangan aplikasi dan perangkat lunak dengan memungkinkan pengembang mengintegrasikan data, layanan, dan kemampuan dari aplikasi lain, alih-alih mengembangkannya dari awal. API juga memberikan pemilik aplikasi cara yang sederhana dan aman untuk membuat data dan fungsi aplikasi mereka tersedia bagi departemen dalam organisasi mereka. Pemilik aplikasi juga dapat berbagi atau memasarkan data dan fungsi kepada mitra bisnis atau pihak ketiga.
API memungkinkan untuk berbagi hanya informasi yang diperlukan, menjaga detail sistem internal lainnya tetap tersembunyi, yang membantu keamanan sistem. Server atau perangkat tidak harus mengekspos data sepenuhnya — API memungkinkan berbagi paket data kecil, relevan dengan permintaan tertentu.
Dokumentasi API seperti buku petunjuk teknis yang memberikan detail tentang API dan informasi bagi pengembang tentang cara bekerja dengan API dan layanannya. Dokumentasi yang dirancang dengan baik mempromosikan pengalaman API yang lebih baik bagi pengguna dan umumnya membuat API lebih sukses.
Pelajari bagaimana otomatisasi cerdas dapat membuat operasi bisnis Anda menjadi keunggulan kompetitif.
Daftar untuk panduan untuk mengoperasionalkan FinOps
Akan sangat berguna untuk memikirkan komunikasi API dalam hal permintaan dan respons antara klien dan server. Aplikasi yang mengirimkan permintaan adalah klien, dan server memberikan respons. API adalah jembatan yang membangun koneksi di antara mereka.
Cara sederhana untuk memahami cara kerja API adalah dengan melihat contoh umum, yaitu pemrosesan pembayaran pihak ketiga. Ketika pengguna membeli produk di situs e-commerce, 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, panggilan API dikirim untuk mengambil informasi. Ini permintaannya. Permintaan ini diproses dari aplikasi ke server web melalui Uniform Resource Identifier (URI) API dan menyertakan kata kerja permintaan, header, dan terkadang, body permintaan.
Setelah menerima permintaan yang valid dari halaman web produk, API akan memanggil 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 permintaan awal, dalam hal ini, situs web produk.
Meskipun transfer data 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 bagi pengguna sebagai koneksi yang mulus.
API dapat dikategorikan berdasarkan kasus penggunaan, termasuk API data, API sistem operasi, API jarak jauh, dan API web.
Digunakan untuk menghubungkan aplikasi dan sistem manajemen database.
Digunakan untuk menentukan bagaimana aplikasi menggunakan layanan dan sumber daya sistem operasi.
Digunakan untuk menentukan bagaimana aplikasi pada perangkat yang berbeda berinteraksi.
Digunakan untuk mengaktifkan transfer data dan fungsionalitas melalui internet menggunakan protokol HTTP.
Saat ini, sebagian besar API adalah API web. API web adalah jenis API jarak jauh (artinya API menggunakan protokol untuk memanipulasi sumber daya eksternal) yang mengekspos data dan fungsionalitas aplikasi melalui internet.
Empat jenis utama API web adalah:
API terbuka adalah antarmuka pemrograman aplikasi sumber terbuka yang dapat Anda akses dengan protokol HTTP. Juga dikenal sebagai API publik, mereka 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 login untuk mengakses API mitra.
API internal, atau pribadi, tetap tersembunyi dari pengguna eksternal. API pribadi ini tidak tersedia untuk pengguna di luar perusahaan. Sebaliknya, organisasi menggunakannya untuk meningkatkan produktivitas dan komunikasi di berbagai tim pengembangan internal.
API komposit menggabungkan beberapa API data atau layanan. Mereka memungkinkan pemrogram untuk mengakses beberapa titik akhir dalam satu panggilan. API komposit berguna dalam arsitektur layanan mikro di mana menjalankan satu tugas mungkin memerlukan informasi dari beberapa sumber.
Karena API memungkinkan perusahaan membuka akses ke sumber daya mereka dengan tetap menjaga keamanan dan kontrol, API telah menjadi aspek yang berharga dalam bisnis modern dan aplikasi pribadi.
Berikut adalah beberapa contoh API yang sering ditemui pengguna:
Contoh API yang populer adalah fungsi yang memungkinkan orang masuk ke situs web dengan menggunakan detail login profil Facebook, X, atau Google mereka. Fitur nyaman ini memungkinkan situs web apa pun untuk menggunakan API dari salah satu layanan yang lebih populer untuk otentikasi cepat. Kemampuan ini membantu menghemat waktu dan kerumitan pengguna dalam menyiapkan profil baru untuk setiap aplikasi web atau keanggotaan baru.
“Perangkat pintar” ini menawarkan fungsionalitas tambahan, seperti layar sentuh yang mendukung internet dan pengumpulan data, melalui API. Sebagai contoh, kulkas pintar dapat terhubung ke aplikasi resep atau mengambil dan mengirim catatan ke ponsel melalui pesan teks. Kamera internal terhubung ke berbagai aplikasi sehingga pengguna dapat melihat isi lemari es dari mana saja.
Situs pemesanan perjalanan mengumpulkan ribuan penerbangan, menampilkan opsi termurah untuk setiap tanggal dan tujuan. API mengaktifkan layanan ini dengan memberikan pengguna aplikasi akses ke informasi terkini tentang ketersediaan dari hotel dan maskapai penerbangan.
Akses ini tersedia melalui browser web atau aplikasi milik perusahaan pemesanan perjalanan itu sendiri. Dengan pertukaran data dan permintaan yang otonom, API secara dramatis mengurangi waktu dan upaya yang terlibat dalam memeriksa penerbangan atau akomodasi yang tersedia.
Aplikasi navigasi menggunakan API inti yang menampilkan peta statis atau interaktif. Aplikasi ini juga menggunakan API dan fitur lain untuk memberikan petunjuk arah, batas kecepatan, tempat menarik, peringatan lalu lintas kepada pengguna, dan banyak lagi. Pengguna berkomunikasi dengan API saat merencanakan rute perjalanan atau melacak item yang sedang bergerak, seperti kendaraan pengiriman.
Perusahaan media sosial menggunakan API untuk mengizinkan entitas lain berbagi dan menyematkan konten yang ditampilkan di aplikasi media sosial ke situs mereka sendiri. Sebagai contoh, API Instagram memungkinkan bisnis untuk menyematkan kisi Instagram mereka di situs web mereka dan kisi tersebut diperbarui secara otomatis saat pengguna menambahkan postingan baru.
API adalah bagian integral dari pertumbuhan produk software as a service (SaaS). Platform seperti CRM (alat manajemen hubungan pelanggan) sering menyertakan beberapa API bawaan yang memungkinkan perusahaan berintegrasi dengan aplikasi yang sudah mereka gunakan, seperti per pesanan, media sosial, dan aplikasi email.
Integrasi ini secara drastis mengurangi waktu yang dihabiskan untuk beralih antara aplikasi untuk tugas penjualan dan pemasaran. Ini juga membantu mengurangi atau mencegah silo data yang mungkin ada di antara departemen yang menggunakan aplikasi yang berbeda.
Secara tradisional, API mengacu pada antarmuka yang terhubung ke aplikasi yang dibuat dengan bahasa pemrograman tingkat rendah, seperti Javascript. Namun, API modern bervariasi dalam arsitektur dan penggunaan format data. Mereka biasanya dibuat untuk HTTP, menghasilkan antarmuka yang ramah pengembang yang mudah diakses dan dipahami secara luas oleh aplikasi yang ditulis dalam Java, Ruby, Python, dan banyak bahasa lainnya.
Seiring dengan meningkatnya penggunaan API web, hal ini telah mengarah pada pengembangan dan penggunaan protokol, gaya, standar, dan bahasa tertentu. Struktur ini memberikan pengguna seperangkat aturan yang ditentukan, atau spesifikasi API, yang membuat tipe data, perintah, dan sintaksis yang dapat diterima. Pada dasarnya, protokol API ini memfasilitasi pertukaran informasi yang ter standardisasi.
SOAP adalah spesifikasi protokol pesan berbasis XML ringan yang memungkinkan titik akhir untuk mengirim dan menerima data melalui berbagai protokol komunikasi termasuk SMTP (protokol transfer surat sederhana) dan HTTP (protokol transfer teks). SOAP bersifat independen, yang memungkinkan SOAP API untuk berbagi informasi antara aplikasi atau komponen perangkat lunak yang berjalan di lingkungan yang berbeda atau ditulis dalam bahasa yang berbeda.
Remote procedure call (RPC) adalah protokol yang menyediakan paradigma komunikasi tingkat tinggi yang digunakan dalam sistem operasi. RPC mengasumsikan adanya protokol transport tingkat rendah, seperti protokol kontrol transmisi/protokol internet (TCP/IP) atau protokol datagram pengguna (UDP), untuk membawa data pesan di antara program-program yang saling berkomunikasi.
RPC mengimplementasikan sistem komunikasi klien-ke-server logis yang dirancang khusus untuk mendukung aplikasi jaringan. Protokol RPC memungkinkan pengguna untuk bekerja dengan prosedur jarak jauh seolah-olah prosedur tersebut bersifat lokal1
Protokol XML-RPC bergantung pada format XML tertentu untuk mentransfer data. XML-RPC lebih tua dari SOAP, tetapi lebih sederhana, dan relatif ringan karena menggunakan bandwidth minimum.
Seperti XML-RPC, JSON-RPC adalah panggilan prosedur jarak jauh, yang menggunakan JSON (JavaScript Object Notation) alih-alih XML. JSON adalah format ringan untuk pertukaran data yang mudah diuraikan dan menggunakan pasangan nama/nilai dan daftar nilai yang diurutkan. Karena JSON menggunakan struktur data universal, JSON dapat digunakan dengan bahasa pemrograman apa pun.
gRPC adalah kerangka kerja RPC open-source berkinerja tinggi yang awalnya dikembangkan oleh Google. gRPC menggunakan protokol jaringan HTTP/2 dan format data Protocol Buffers dan umumnya digunakan untuk menghubungkan layanan dalam arsitektur layanan mikro.
WebSocket API memungkinkan komunikasi dua arah antara klien dan server. Jenis API ini tidak memerlukan koneksi baru untuk dibuat untuk setiap komunikasi—setelah koneksi dibuat memungkinkan pertukaran berkelanjutan. Hal ini membuat Web Socket API ideal untuk komunikasi real-time.
REST adalah seperangkat prinsip arsitektur API web. REST API—juga dikenal sebagai RESTful API—adalah API yang mematuhi batasan arsitektur REST tertentu. REST API menggunakan permintaan HTTP seperti GET, PUT, HEAD dan DELETE untuk berinteraksi dengan sumber daya. REST membuat data tersedia sebagai sumber daya, dengan setiap sumber daya diwakili oleh URI unik. Klien meminta sumber daya dengan menyediakan URI-nya.
REST API bersifat stateless—mereka tidak menyimpan data klien di antara permintaan. Sangat mungkin untuk membangun RESTful API dengan protokol SOAP, tetapi para praktisi biasanya melihat kedua standar tersebut sebagai spesifikasi yang bersaing.
GraphQL adalah bahasa kueri sumber terbuka dan runtime sisi server yang menentukan bagaimana klien harus berinteraksi dengan API.2 GraphQL memungkinkan pengguna untuk membuat permintaan API hanya dengan beberapa baris, daripada harus mengakses titik akhir yang kompleks dengan banyak parameter. Kemampuan ini dapat memudahkan untuk menghasilkan dan merespons kueri API, terutama permintaan yang lebih kompleks atau spesifik yang menargetkan banyak sumber daya.
SOAP dan REST mewakili pendekatan yang berbeda terhadap desain API, yang menggambarkan aturan dan standar tentang bagaimana API harus berinteraksi dengan aplikasi lain. SOAP adalah protokol sedangkan REST adalah seperangkat kendala yang membentuk gaya arsitektur. Keduanya menggunakan HTTP untuk bertukar informasi.
REST sering dianggap sebagai alternatif yang lebih sederhana untuk SOAP karena ringan, fleksibel, transparan, dan relatif mudah digunakan; SOAP mengharuskan pengguna menulis lebih banyak kode untuk menyelesaikan setiap tugas daripada yang dibutuhkan REST.
SOAP lebih deterministik dan kuat (karena adanya pengecekan tipe), dan para pendukungnya menyatakan bahwa SOAP lebih mudah digunakan karena dukungan SOAP yang ada pada banyak alat pengembangan.3 SOAP memiliki fitur kepatuhan bawaan, dan pengembang sering menganggapnya sebagai protokol yang lebih aman, lebih cocok untuk situasi dengan persyaratan integritas data yang ketat.
Sistem RESTful mendukung pengiriman pesan dalam berbagai format, seperti teks biasa, HTML, YAML, XML, dan JSON, sementara SOAP hanya mengizinkan XML. Masing-masing memiliki kekuatan mereka sendiri, dan “pilihan yang tepat,” mungkin tergantung pada contoh penggunaan. Namun, kemampuan untuk mendukung berbagai format untuk menyimpan dan bertukar data adalah salah satu alasan mengapa REST menjadi pilihan utama untuk membangun API publik.
GraphQL adalah bahasa kueri dan waktu proses API yang dikembangkan secara internal oleh Facebook pada tahun 2012 sebelum menjadi sumber terbuka pada tahun 2015. GraphQL dan REST keduanya stateless, gunakan model client/server dan gunakan HTTP. GraphQL memecahkan beberapa keterbatasan REST, misalnya, menyediakan kemampuan untuk menargetkan sumber daya yang diinginkan secara lebih akurat dengan satu permintaan.
REST API mengikuti struktur tetap, dan selalu mengembalikan seluruh kumpulan data untuk objek tertentu. Jika permintaan lebih kompleks, mencakup beberapa sumber daya, misalnya, klien harus mengirimkan permintaan terpisah untuk setiap sumber daya. Keterbatasan ini dapat menyebabkan masalah kekurangan atau kelebihan pengambilan.
Baca selengkapnya tentang GraphQL vs. REST di sini.
Baik REST maupun GraphQL API secara inheren tidak lebih unggul. Mereka adalah alat yang berbeda yang cocok untuk tugas yang berbeda.
REST umumnya lebih mudah diimplementasikan dan dapat menjadi pilihan yang baik ketika protokol komunikasi yang langsung dan dapat di-cache dengan kontrol akses yang ketat lebih disukai (untuk situs e-commerce yang berhadapan dengan publik seperti Shopify dan GitHub, sebagai salah satu contohnya).
API GraphQL memungkinkan pengambilan data yang lebih fleksibel dan efisien, yang dapat meningkatkan performa sistem dan kemudahan penggunaan bagi para pengembang. Fitur-fitur ini membuat GraphQL sangat berguna untuk membangun API di lingkungan yang kompleks dengan persyaratan front-end yang berubah dengan cepat.4
Layanan web adalah komponen perangkat lunak internet yang memfasilitasi transfer data melalui jaringan. Karena layanan web memaparkan 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 terputus. Sementara layanan web juga menghubungkan aplikasi, API ini juga memerlukan jaringan untuk melakukannya. Layanan web biasanya bersifat pribadi dan hanya pengguna yang disetujui yang dapat mengaksesnya.
Microservices adalah gaya arsitektur yang membagi aplikasi menjadi komponen independen yang lebih kecil, sering dihubungkan dengan 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 lebih umum dengan munculnya komputasi awan dan, bersama dengan kontainer dan Kubernetes, merupakan dasar untuk pengembangan aplikasi cloud-native.
API menyederhanakan desain dan pengembangan aplikasi dan layanan baru, serta integrasi dan manajemen yang sudah ada. Mereka juga menawarkan manfaat yang signifikan bagi pengembang dan organisasi pada umumnya.
Rata-rata perusahaan menggunakan hampir 1.200 aplikasi cloud (tautan berada di luar ibm.com), banyak di antaranya yang tidak saling terhubung. 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, memungkinkan perusahaan untuk menjalin hubungan dengan mitra bisnis baru dan menawarkan layanan baru ke pasar yang sudah ada. Fleksibilitas ini juga memungkinkan perusahaan untuk mengakses pasar baru yang dapat meningkatkan keuntungan dan mendorong transformasi digital.
Sebagai contoh, perusahaan Stripe dimulai sebagai API dengan hanya tujuh baris kode. Sejak itu perusahaan telah bekerja dengan banyak perusahaan terbesar di dunia. Stripe telah melakukan diversifikasi untuk menawarkan pinjaman dan kartu perusahaan, dan menerima penilaian baru-baru ini (tautan berada di luar ibm.com) sebesar USD 65 miliar.
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. Praktik ini disebut sebagai ekonomi API.
Ketika AccuWeather (tautan berada di luar ibm.com ) memulai portal pengembang swalayan untuk menjual berbagai macam paket API, hanya dalam waktu 10 bulan saja, mereka berhasil menarik 24.000 pengembang dan menjual 11.000 kunci API. Langkah ini membantu membangun komunitas yang berkembang dalam prosesnya.
API memisahkan aplikasi yang meminta dari infrastruktur layanan yang merespons, dan menawarkan lapisan keamanan di antara keduanya saat berkomunikasi. Misalnya, panggilan API biasanya memerlukan kredensial autentikasi. Header HTTP, cookie, atau string kueri dapat memberikan keamanan tambahan selama pertukaran data. Gateway API dapat mengontrol akses untuk lebih meminimalkan ancaman keamanan.
API memberikan perlindungan tambahan dalam jaringan. Mereka juga dapat memberikan lapisan perlindungan lain untuk pengguna pribadi. Ketika sebuah situs web meminta lokasi pengguna (API lokasi menyediakan informasi ini), pengguna dapat memutuskan untuk mengizinkan atau menolak permintaan ini.
Banyak browser web dan sistem operasi desktop dan seluler memiliki struktur izin bawaan. Ketika sebuah aplikasi harus mengakses file melalui API, sistem operasi seperti iOS, macOS, Windows, dan Linux menggunakan izin untuk akses tersebut.
Kelola siklus hidup API Anda di berbagai cloud, tingkatkan sosialisasi, dan optimal kan upaya monetisasi di seluruh ekosistem bisnis Anda.
Hubungkan, otomatis kan, dan buka potensi bisnis dengan solusi integrasi IBM.
Menghubungkan aplikasi, data, proses bisnis, dan layanan, baik yang di-hosting secara on premises, di cloud pribadi, atau dalam lingkungan cloud publik.
Pelajari bagaimana REST API menyediakan cara yang fleksibel dan ringan untuk mengintegrasikan aplikasi dan menghubungkan komponen dalam arsitektur layanan mikro.
Pemantauan API adalah proses mengamati kinerja, ketersediaan, dan fungsionalitas antarmuka pemrograman aplikasi perusahaan (API).
Baca alasan IBM dinobatkan sebagai Pemimpin dalam laporan Kemampuan Kritis Gartner ® untuk Manajemen API tahun 2023.
Titik akhir API adalah lokasi digital tempat sebuah antarmuka pemrograman aplikasi (API) menerima panggilan API, atau permintaan API, untuk sumber daya di servernya.
Temukan berbagai jenis API, protokol, dan gaya pengembangan serta bagaimana masing-masing mengoptimalkan manajemen data antar sistem.
Pelajari tentang manajemen API dan bagaimana platform manajemen API terpadu dapat membantu menskalakan organisasi Anda.
1“Panggilan Prosedur Jarak Jauh”, ibm.com, 3 November 2023.
2“Apa itu GraphQL”, Chrystal R. China, ibm.com, 8 Desember 2023.
3“Membandingkan REST dan SOAP”, ibm.com, 5 Maret 2021.
4“GraphQL vs. REST API: Apa perbedaannya?”, Crystal R. China, ibm.com, 29 Maret 2024.