What is api

Anda mungkin sudah puluhan kali melihat singkatan “API”. Jika pernah membayar secara online atau menggunakan agregator data, Anda telah menggunakan API misterius itu. Namun, apa sebenarnya API? Dalam artikel ini, kami membahas apa itu API, protokol API yang tersedia, dan jenis-jenis API.

Apa itu API, dan bagaimana cara kerjanya?

Application Programming Interface adalah perantara perangkat lunak yang memungkinkan aplikasi yang berbeda untuk berkomunikasi. API terutama berada di backend sistem, sehingga Anda tidak melihat kerjanya dan sering kali tidak menyadari bahwa Anda sedang menggunakannya.

Sebagai contoh, Anda mengunjungi situs web berita favorit dan melihat prakiraan cuaca hari ini. Situs web serupa lainnya mungkin menawarkan informasi yang sama. Namun, dari mana mereka mendapatkan data ini? Tentu saja, kantor berita tidak memiliki stasiun cuaca sendiri untuk membuat prakiraan. Sebaliknya, mereka memperoleh data dari pusat meteorologi. Pada saat yang sama, sebuah situs web harus menyajikan prakiraan yang akurat dan relevan dengan lokasi Anda, sementara ribuan pengunjung dari puluhan tempat mengunjungi media berita tersebut secara bersamaan dengan Anda. Developer atau admin situs web tidak dapat menyajikan atau memperbarui prakiraan secara manual untuk setiap pengunjung. Sebaliknya, mereka menggunakan API. Setiap kali Anda membuka situs web ini untuk membaca berita, situs tersebut menggunakan API untuk “memanggil” aplikasi meteorologi guna mengetahui cuaca di lokasi Anda, lalu menampilkan respons aplikasi tersebut. Ini mirip dengan mengambil ponsel dan menekan nomor teman untuk menghubunginya. API merupakan padanan “nomor telepon” yang digunakan aplikasi untuk saling menghubungi.

API populer dan banyak digunakan karena alasan yang baik. Pertama, API menyederhanakan proses pengembangan. Developer tidak perlu menemukan kembali roda, melainkan dapat menggunakan API yang sama untuk banyak proyek. Hal ini mempercepat proses pengembangan dan akibatnya menghemat waktu serta biaya. Dengan API, aplikasi tidak mencampuri proses satu sama lain, melainkan hanya mendapatkan data yang diperlukan. Hasilnya, API meningkatkan keamanan, mengurangi kemungkinan kesalahan, dan mendukung kelancaran kerja program.

Selain itu, API memungkinkan sistem yang berbeda untuk berkomunikasi tanpa memedulikan teknologi dan struktur dasarnya. Bagi pengguna, API berarti daftar fungsi yang luas.

Saat membicarakan API, kami terutama merujuk pada web API, misalnya API yang memerlukan koneksi internet. Namun, beberapa API digunakan dalam satu sistem dan perangkat, misalnya sistem operasi komputer, serta tidak pernah membutuhkan koneksi internet. Dalam artikel ini, kami berfokus pada web API.

Komponen API

Mari melihat lebih dekat di balik layar. Terdiri dari apa bagian kode yang disebut API ini?

Gagasan utama di balik setiap API adalah interoperabilitas. Dengan kata lain, setiap platform yang mendukung format yang dipilih harus dapat berinteraksi dengan API dengan cara yang sama. Jadi, meskipun developer berbeda dan beberapa protokol digunakan, komponen utama API tetap sama.

Klien API

Klien API adalah aplikasi, browser, atau perangkat lunak apa pun yang membuat request. Berbagai hal dapat memicu klien mengirim request. Misalnya, tindakan pengguna seperti memuat ulang halaman atau menekan tombol dapat memicu klien mengirim request. Kondisi yang terjadi di backend dan didasarkan pada logika otomatis, seperti kueri database, juga dapat menjadi pemicu.

Request API

Request API harus mengikuti standar yang sama. Biasanya, request berisi lima elemen utama:

Endpoint

Dalam API, endpoint adalah URL yang menjadi tujuan request Anda. Untuk mengetahui endpoint yang tersedia dan format yang harus digunakan, Anda wajib memeriksa dokumentasi API dengan saksama. Di sana, vendor API menjelaskan seluruh detail. Biasanya, endpoint memuat nama domain dan versi API yang digunakan. Endpoint juga dapat memuat beragam query parameter. Sekali lagi, dokumentasi API memuat informasi tentang parameter yang tersedia.

Metode

Dalam request, Anda harus memberi tahu server tindakan yang Anda inginkan. Jadi, metode adalah perintah kepada server yang memberi tahu tindakan yang harus dilakukannya. Metode berbeda bergantung pada protokol API yang Anda gunakan. Sebagai contoh, protokol REST memanfaatkan metode HTTP seperti GET, POST, PUT, PATCH, dan DELETE. Protokol lain memiliki metodenya sendiri. Jika Anda akan menggunakan API, bacalah dokumentasinya. Vendor akan menjelaskan protokol dan metode yang digunakan API tersebut.

Parameter

Selain query parameter, terdapat pula path parameter, header parameter, dan request body parameter. Parameter tersebut diperlukan untuk autentikasi, memfilter request Anda, serta meneruskan detail yang diperlukan ke server penerima. Jika metode memberi tahu server tindakan yang harus dilakukan, misalnya mengambil data, parameter membantu menentukan data yang harus diberikan kepada Anda.

Header

Header dalam request API menjalankan peran klasik: menyediakan data tambahan tentang request dan format respons yang diinginkan, detail otorisasi untuk membuktikan bahwa Anda diizinkan melakukan tindakan yang diminta, serta detail tentang cara menyimpan request dan respons dalam cache.

Request body

Inilah inti request Anda, tempat Anda menyediakan semua data utama menggunakan request parameter. Agar lebih mudah dipahami, bayangkan sebuah paket. Endpoint adalah tujuan pengiriman paket Anda. Parameter dan header adalah data pengiriman lainnya, seperti nama serta nomor telepon penerima, dengan detail tambahan seperti apakah paket Anda berisi barang rapuh atau apakah pengiriman sudah dibayar atau harus dibayar oleh penerima. Request body seperti paket, yaitu isi kotak atau barang yang Anda kirim. Seperti disebutkan, request body memuat berbagai parameter yang ditentukan vendor API dalam dokumentasi.

Server API

Server API adalah platform, perangkat lunak, database, atau apa pun yang menerima request kami. Server ini menyediakan API, menyimpan seluruh data API, dan melakukan tindakan yang kami tentukan dalam request.

Respons API

Di mana ada request, di situ ada respons. Respons adalah hal yang dikirim server atas request Anda. Respons juga terdiri dari beberapa elemen penyusun.

Kode status

Kode status menunjukkan apakah request kami berhasil dan apakah server dapat menanganinya. Kode 200-an berarti request berhasil, 300-an berarti pengalihan, 400-an menandakan adanya masalah pada request, dan 500-an berarti ada masalah di sisi server.

Header respons

Header respons serupa dengan header request. Header ini mengirim cookie ke klien dan menyediakan detail tentang response body.

Response body

Response body terdiri atas serangkaian pasangan kunci/nilai yang menyediakan data yang diminta. Namun, response body bukan komponen wajib dalam respons API. Jika Anda meminta server mengambil data dan mengirimkannya kepada Anda, Anda akan menerima respons. Sebaliknya, jika Anda mencoba menghapus atau mengganti data pada server, Anda tidak akan melihat response body, hanya kode status.

Protokol API

Protokol adalah serangkaian aturan yang menentukan cara kerja API. Ada beberapa protokol yang digunakan untuk API.

REST

REST, atau RESTful (Representational State Transfer), adalah protokol API yang paling banyak digunakan. Namun, REST lebih merupakan gaya arsitektur daripada protokol. REST mengandalkan protokol HTTP untuk mentransfer data dalam format JSON atau XML. Request saling independen, dan respons dapat disimpan dalam cache. Kesederhanaan dan skalabilitas merupakan keunggulan utama REST, sehingga REST menjadi pilihan utama untuk layanan web dan aplikasi seluler.

Di sisi lain, over-fetching atau under-fetching dapat terjadi, sehingga klien mendapatkan data lebih banyak daripada yang diminta atau, sebaliknya, tidak mendapatkan seluruh data yang diperlukan. Selain itu, karena REST menggunakan protokol HTTP, REST mungkin tidak cocok untuk semua tipe data, aplikasi, dan lingkungan. REST juga memiliki masalah keamanan. REST dapat memiliki kerentanan jika tidak dipelihara dengan benar.

SOAP

Simple Object Access Protocol, atau SOAP, jauh lebih ketat dan kompleks dibandingkan REST. SOAP menggunakan standar data XML dan dapat mendukung beberapa protokol untuk transfer data, termasuk HTTP dan SMTP. SOAP mendukung fitur keamanan lanjutan seperti WS-Security. SOAP terutama digunakan untuk kasus yang membutuhkan keamanan dan formalitas lebih daripada kemudahan penggunaan oleh audiens besar, seperti layanan keuangan atau aplikasi enterprise seperti Salesforce.

RPC

Protokol remote procedure call menangani data dalam format JSON dan XML. Namun, RPC sangat berbeda dari REST dan SOAP karena memanggil metode, bukan sumber data. Respons RPC menunjukkan bahwa suatu tindakan dipicu atau gagal. Karena memanggil server RPC mengubah status server, diperlukan tingkat keamanan yang tinggi antara vendor dan pengguna. Dengan demikian, API RPC sering kali bersifat privat. Namun, RPC mengandalkan protokol HTTP/2 untuk mentransfer data, yang tidak didukung secara native oleh sebagian besar browser. Karena itu, Anda mungkin memerlukan peralatan tambahan untuk memastikan RPC berfungsi dengan benar.

GraphQL

Walaupun GraphQL disebut protokol, GraphQL sebenarnya adalah bahasa kueri. Berbeda dari REST yang memiliki banyak endpoint, GraphQL biasanya hanya memiliki satu endpoint. GraphQL memungkinkan Anda membuat beberapa request dalam satu kueri. Pengguna dapat menentukan data yang mereka perlukan sehingga over-fetching atau under-fetching dapat dicegah. Di sisi lain, GraphQL memiliki beberapa tantangan dalam caching data. Vendor juga harus menyediakan dokumentasi yang lengkap agar pengguna mengetahui parameter yang tersedia untuk membuat kueri.

Jenis API

Ada beberapa cara untuk mengategorikan API, berdasarkan target audiens atau strukturnya. Jika berdasarkan audiens, API dapat berupa publik, partner, dan privat. Jika berdasarkan struktur, API dapat berupa composite, unified, microservices, dan monolitik.

API publik

API publik, yang juga disebut terbuka atau eksternal, dirancang untuk audiens luas. API ini tidak memiliki atau hanya memiliki sedikit pembatasan. Bahkan jika memerlukan autentikasi atau pendaftaran, prosesnya mudah dan pengguna tidak perlu memiliki kualifikasi apa pun untuk menggunakan API tersebut. Namun, API terbuka masih dapat memerlukan pembayaran atau membatasi fitur untuk akun gratis. Misalnya, Google Maps API adalah API publik.

API privat

Jenis API ini juga disebut API internal. API ini ditujukan bagi kelompok pengguna kecil, seperti orang-orang di dalam perusahaan. Pengguna memerlukan izin untuk mengakses API tersebut. API ini harus aman, sehingga autentikasinya mungkin memerlukan waktu dan kompleks.

API partner

API partner berada di antara API publik dan privat. Kasus penggunaan utamanya adalah berbagi data antara dua perusahaan atau bisnis, sehingga API tersebut tetap memerlukan autentikasi dan aman. API ini juga ditujukan bagi kelompok pengguna, tetapi kelompok itu lebih besar daripada pada API privat. Informasi yang dibagikan melalui API tersebut penting dan jelas bukan untuk audiens luas, tetapi tetap tidak serahasia data yang dibagikan melalui API privat.

Terkadang, jenis keempat, yaitu OpenAPI Standard, juga disebutkan. Namun, ini bukan jenis API lain, melainkan framework untuk menulis API publik. Nama awalnya adalah Swagger, dan alat ini menyediakan panduan sehingga penulisan API serta penggunaannya menjadi lebih sederhana dan cepat. Namun, tidak tepat pula menyebut API publik sebagai “API terbuka”, karena tidak semua API publik mengikuti standar ini. Selain itu, API privat dapat menggunakan standar OpenAPI meskipun tidak tersedia secara publik.

API monolitik

API seperti ini dibuat sebagai satu codebase yang memberikan akses ke sumber yang kompleks. Keunggulannya mencakup fungsionalitas dan stabilitas yang dapat diprediksi. Di sisi lain, API ini sulit diskalakan atau diperbarui karena banyak data saling terhubung dan perubahan dapat menimbulkan konsekuensi yang tidak dapat diprediksi.

API microservices

Sebaliknya, pada API microservices, setiap API melayani tujuan yang berbeda dan spesifik. API ini mudah diperbarui atau sebagian yang tidak lagi diperlukan dapat dimatikan tanpa memengaruhi keseluruhan sistem. Namun, API microservices menghasilkan jumlah request individual yang sangat besar.

API composite

Di sinilah API composite berperan. API ini dapat menargetkan beberapa endpoint dalam satu panggilan, menentukan rangkaian panggilan yang paling efektif, memberikan data yang diperlukan, dan mencegah kode duplikat.

API unified

API unified mirip dengan API composite. Alih-alih meminta endpoint yang berbeda pada satu API, API ini meminta berbagai API. Pilihannya bergantung pada kebutuhan Anda.

Pengujian dan pemantauan API

Seperti perangkat lunak lainnya, API memerlukan pengujian dan pemantauan untuk memastikan stabilitas, keamanan, dan performa tingkat tinggi. Anda dapat menguji API secara manual atau melakukan pengujian otomatis. Ada beberapa jenis pengujian API:

  • pengujian fungsional – untuk memastikan server merespons request dan respons serta format data sudah benar;
  • pengujian beban – membantu memvalidasi apakah API berfungsi dengan benar ketika terjadi lonjakan lalu lintas;
  • pengujian keamanan – diperlukan untuk memastikan tidak ada celah bagi penipu;
  • pengujian regresi – ketika perubahan dilakukan, pengujian regresi diperlukan untuk memastikan tidak terjadi konsekuensi yang tidak terduga dan tidak diinginkan;
  • pengujian toleransi kesalahan – baik untuk memverifikasi cara sistem merespons request yang berpotensi berbahaya, seperti request yang dapat mengarah pada serangan DDoS.

Developer melakukan pengujian API pada tahap pengembangan dan deployment.

Kesimpulan

API adalah alat lain yang membantu Anda memaksimalkan teknologi. Walaupun Anda sering menggunakannya tanpa menyadarinya, banyak fungsi pada situs web atau aplikasi favorit Anda dimungkinkan oleh API. DataImpulse selalu siap menjelaskan teknologi dengan bahasa yang sederhana agar Anda merasa nyaman. Selain itu, memadukan satu alat dengan alat lain dapat memberikan hasil terbaik. Misalnya, pengujian API menjadi jauh lebih efektif dengan proxy. Kami juga mengembangkan API kami, sehingga Anda dapat menggunakannya untuk menjual kembali proxy kami dan menghasilkan uang bersama kami. Untuk mengetahui lebih lanjut, hubungi kami di [email protected] atau tekan tombol “Coba sekarang” di sudut kanan atas layar.

Share article: