Apa sih API itu?
Mengapa menggunakan API dalam kode Anda seperti bermain LEGO.
Anda mungkin pernah mendengar istilah "API" di sebagian besar tutorial pengkodean yang pernah Anda baca. Jika Anda Google "API", Anda akan mendapatkan paragraf besar tentang singkatan dari "Antarmuka Pemrograman Aplikasi" dan penjelasan tentang "REST" dan "protokol" dan seterusnya, seolah-olah itu membuatnya lebih jelas.
Yang perlu Anda ketahui tentang API adalah daftar fungsi yang dapat Anda gunakan untuk mengotomatiskan tugas dan mendapatkan data . Misalnya, Anda dapat:
- Gunakan API Gmail untuk mengotomatiskan pembacaan dan pemfilteran kotak masuk Anda dengan kode
- Gunakan Reddit API untuk membuat bot yang secara otomatis mengonversi satuan metrik menjadi imperial dengan kode
- Gunakan API Fitbit untuk mengambil data dari Fitbit Anda dan mengirimkannya ke aplikasi khusus di ponsel Anda
Dengan nada yang sama, API menyediakan potongan kode kecil yang memungkinkan Anda membuat program. Mereka memiliki fungsi seperti:
getLikeCount()createGoogleSheet()sendEmail()
Bagaimana kita tahu apa "potongan kode" itu?
Setiap API dilengkapi dengan dokumentasi yang mencantumkan semua cara Anda dapat menggunakannya, seperti katalog LEGO. Ini menunjukkan kepada Anda semua hal yang dapat Anda lakukan dengan API, yang untuk API Reddit mungkin adalah "kirim komentar" atau "simpan postingan". Dokumentasi sering ditemukan online di situs web perusahaan, biasanya di beberapa halaman pengembang tersembunyi. " Hal-hal yang dapat Anda lakukan" disebut sebagai "metode API".
Beberapa dokumentasi lebih baik daripada yang lain , tetapi dokumentasi pada akhirnya adalah daftar potongan kode dan fungsi yang telah dibuat sebelumnya yang dapat Anda gunakan dalam kode Anda sendiri .
API Termudah: Mendapatkan Alamat IP Anda
Mari kita lihat API yang hanya memiliki satu bagian: IPify API , yang memberi tahu Anda alamat IP Anda.
Alamat IP seperti nomor telepon atau alamat surat untuk komputer Anda. Ini memberi tahu internet di mana menemukan Anda. Situs web juga memiliki alamat IP sendiri.
Kami akan mengirim satu perintah ke IPify.org dan menanyakan alamat IP kami. Ini bekerja pada Mac OS dan Windows.
Buka Terminal (Mac) atau Command Prompt (Windows) dan ketik berikut ini:
curl 'https://api.ipify.org?format=json'
What the command looks like in Terminal on a MacBook.
{"ip": "68.142.10.250"}
Untuk memverifikasi bahwa ini adalah IP asli Anda, kunjungi WhatIsMyIPAddress.com .
JSON adalah salah satu format data paling populer untuk API web modern. Itu menempatkan semuanya dalam {“key”: value}format sehingga semua data memiliki label. API lain mungkin menggunakan XML , yang memiliki format serupa <Key>value</Key>, dan banyak API memungkinkan Anda memilih di antara keduanya.
Ini adalah inti dari banyak API web. Kami meminta beberapa data dari situs web dan situs tersebut merespons kembali dengan data tersebut. API yang umum dalam penelitian ilmiah, seperti API NASA , USGS , dan USFDA , bekerja dengan cara ini. Kita bisa mendapatkan data tentang satelit luar angkasa, ketinggian pegunungan di AS, dan daftar obat yang disetujui FDA jika kita hanya memintanya.
Bagaimana dengan Mengotomatiskan Aktivitas Pengguna?
Bagaimana jika kita tidak ingin hanya mengambil data dari situs web? Bagaimana dengan membuat bot atau mengotomatiskan hari kerja kita?
Di sinilah API yang lebih rumit masuk. Mereka masih melibatkan perintah tunggal di mana kita berbicara dengan situs web atau aplikasi dan berkata, "Saya ingin mendapatkan data ini (atau mengirim data ini)." Dan aplikasi merespons sesuai. Tapi sekarang kami menggabungkan beberapa perintah untuk menyelesaikan aktivitas yang lebih canggih.
Contoh Multi-Langkah: Reddit API
Reddit adalah forum online terbesar di dunia. Reddit memposting API mereka secara online , dan mereka mencantumkan semua yang dapat Anda lakukan dengan API mereka di sidebar di sebelah kiri.
Di sidebar adalah metode yang bisa kita gunakan untuk mendapatkan daftar teman, karma, piala, dan lainnya. Setiap tindakan yang dapat dilakukan pengguna di situs web memiliki metode API yang sesuai.
Jika kami mengunjungi halaman API Reddit dan menggulir ke bawah, ada bagian, tautan & komentar , yang menunjukkan semua interaksi pengguna normal dan metode API yang sesuai. Kita bisa menggunakan ini untuk membuat akun bot atau yang serupa.
Kami memiliki interaksi pengguna setiap hari seperti berkomentar ( /api/comment), mengikuti , dan menyimpan kiriman . API Reddit memungkinkan untuk melakukan ini dengan kode. Awalan /api/pada semua metode terlihat aneh, tetapi kami akan menjelaskannya sebentar lagi.
Google Search API , sebaliknya, hanya memiliki satu metode yaitu search :
Google Search API itu sederhana, karena Google tahu bahwa hanya ada satu hal yang harus dilakukan pemrogram dengan Google Search: penelusuran.
Ini adalah tujuan dari setiap API, untuk meringkas semua aktivitas dan opsi dari situs web atau aplikasi normal ke dalam fungsi siap kode "satu baris" yang dapat kita gunakan dari Python, JavaScript, Bash, Java, R, dll. .
- API situs web ingin Anda dapat melakukan interaksi pengguna normal (login, berkomentar, mencari, menghapus sesuatu) dengan kode sesedikit mungkin
- API yang dapat dikenakan ingin Anda dapat mengambil data, mengirimkan peringatan kepada pemakainya, atau mengubah pengaturan pada perangkat yang dapat dikenakan dengan kode sesedikit mungkin
Seperti Apa Menggunakan API dalam Kode
Jadi seperti apa ini dalam kode? API Reddit mengatakan metode komentar disebut /api/comment. Maksudnya itu apa? Kita tidak bisa hanya memasukkan /api/commentfile Python dan menghentikannya, bukan? Benar.
Ada beberapa perbedaan antara menggunakan API untuk berkomunikasi dengan situs web vs. menggunakan API perangkat yang dapat dikenakan. Keduanya masih seperti LEGO karena memungkinkan Anda melakukan hal-hal rumit dengan beberapa baris kode, tetapi kode itu sendiri terlihat sangat berbeda. Oleh karena itu, kami akan memberikan contoh terpisah untuk mereka.
Lebih Mendalam: API Web dalam Kode
Kami melihat bahwa metode API Reddit terdaftar dengan banyak garis miring:
Itu sama sekali tidak terlihat seperti Python atau JavaScript atau kode. Dikatakan /api/? Apa itu?
Ini sebenarnya adalah bagian dari tautan HTTP , seperti yang Anda ketik di Chrome atau Firefox.
Mengapa tautan web? Apakah kita memasukkannya langsung ke dalam kode kita? Ya, dan untuk alasan yang bagus.
Saat kami menggunakan API web, seperti Reddit, Gmail, atau bahkan API NIH atau NASA , kode kami pada dasarnya berkomunikasi dengan situs web. Situs web digunakan links/that/look/like/thisuntuk memisahkan halaman dan fungsinya. Google tinggal di google.com, tetapi hasil pencariannya tinggal di google.com/search.
Kami akhirnya akan menempatkan titik akhir itu dalam kode kami di suatu tempat seperti ini:
google_search_api = "https://www.googleapis.com/customsearch/"
Sekarang, kode tersebut tidak benar-benar berbicara dengan situs web tetapi server (seperti situs web tanpa kepala), tetapi mereka mengatur hal-hal yang sama dengan /slashes/, sejauh API berjalan. Sama seperti ketika Anda memposting blog sebagai pengguna biasa ke situs web dari halaman website.com/post, kode Anda mungkin berbicara dengan titik akhir posting blog server API di api.website.com/postatau website.com/api/postatau sejenisnya.
Anggap saja seperti ini: saat Anda memeriksa kotak masuk Gmail di laptop atau ponsel, browser Anda akan:
- Menjangkau di Internet untuk
gmail.com - Ucapkan ke
gmail.com, "Bisakah saya mendapatkan halaman web di bawah/mail/inbox?" - Kemudian Gmail mengirimkan halaman web untuk kotak masuk Anda kembali ke browser Anda, sehingga Anda dapat melihatnya.
- Mencapai
gmail.googleapis.com - Minta
gmail.googleapis.comkotak masuk email Anda - Kemudian API Gmail akan mengirim kembali hanya datanya, bukan seluruh situs web
Data murni ramah kode, dan untuk itulah API dibuat.
Contoh: Mendapatkan Obat dari openFDA API
Berikut adalah contoh singkat Python untuk menanyakan API openFDA USFDA , yang mencantumkan semua obat yang disetujui FDA:
# import an HTTP library
import requests
# Tell "requests" to request data from the openFDA "Drugs" endpoint
drugs_http_endpoint = "https://api.fda.gov/drug/label.json?limit=100"
drugs = requests.get(drugs_http_endpoint)
# Print all the data that we got from USFDA about drugs
print(drugs.json())
Catatan: contoh di atas menggunakan requests pustaka HTTP populer untuk Python.
Bagaimana dengan API untuk Bluetooth dan perangkat yang dapat dikenakan?
Menggunakan API perangkat yang dapat dikenakan (seperti Fitbit atau Apple Watch) sedikit berbeda dengan menggunakan API situs web, tetapi didokumentasikan dengan cara yang sama. Misalnya, alih-alih metode "komentar" , API yang dapat dikenakan mungkin memiliki metode berikut:
- mendapatkan detak jantung
- dapatkan data gerakan (dari akselerometer dan giroskop)
- mengirim peringatan kepada pengguna
Contoh Perangkat Wearable: API Fitbit
Alih-alih menanyakan data ke beberapa situs web, Anda mungkin ingin membuat kode untuk perangkat tertentu, seperti Fitbit .
Ada beberapa bagian pada Fitbit API . Ia bahkan memiliki API Web sendiri.
Mari kita lihat salah satu bagian dari Device API .
Pada halaman Device API , sidebar kiri menampilkan daftar semua bagian API yang dapat kita gunakan untuk berinteraksi.
Masing-masing kategori yang lebih besar ini adalah semacam kumpulan potongan LEGO , yang potongannya dapat kita baca lebih lanjut kemudian digunakan dalam kode kita sendiri. Potongan LEGO adalah hal-hal seperti:
- membaca atau mengatur jam
- membaca akselerometer (bagian dari pelacak gerakan)
- membaca monitor detak jantung , dll.
Ada banyak informasi, tetapi halaman tersebut memiliki skrip contoh singkat dan kemudian mencantumkan sekumpulan potongan LEGO terkait detak jantung yang dapat kita gunakan dalam kode kita sendiri:
activated(memberi tahu kami apakah sensor detak jantung aktif atau tidak)heartRate(memberi tahu kami detak jantung saat ini)onactivate(fungsi yang dapat kita gunakan untuk memberi tahu Fitbit apa yang harus dilakukan segera setelah sensor detak jantung diaktifkan)
Dalam pseudocode, arti di atas:
import HeartRateSensor code from Fitbit's API
if HeartRateSensor was imported {
hrm = the HeartRateSensor
Listen for heart rate sensor to send data, then print it.
Start the heart rate sensor (which will then start the above "Listen" code)
}
Jika Anda mengalami kebuntuan saat menggunakan API, perusahaan pembuatnya biasanya memiliki dokumentasi online yang dapat Anda gunakan di Google. (Contoh: mencari "API Fitbit" akan menampilkan API Fitbit yang sebenarnya sebagai hasil pencarian teratas.) Jika gagal, Anda dapat menghubungi perusahaan secara langsung untuk menanyakan apakah mereka memiliki dokumentasi API yang dapat mereka kirim.
Dalam beberapa kasus, dokumentasi API bisa benar-benar mengecewakan , menyebabkan frustrasi di komunitas pengembang. Tapi itu adalah kesempatan untuk berkontribusi dan mengisi kekosongan atau membuat produk Anda sendiri yang lebih baik.
Ringkasan
Insinyur menulis API dengan harapan Anda akan mengembangkan dan menggunakan aplikasi, kumpulan data, dan perangkat yang dapat dikenakan. Sekarang setelah Anda memahami API, lihat API populer ini untuk memulai . Lebih sering daripada tidak, semua teknologi dan aplikasi favorit Anda memiliki API yang dapat Anda gunakan di proyek berikutnya.
Jika Anda memiliki pertanyaan atau umpan balik, kirim email kepada kami di [email protected] atau kirim pesan kepada kami di Instagram (@protobioengineering) . Terima kasih sudah membaca.
tautan yang berhubungan
- GitHub untuk Ahli Biologi
- Dataverse API: Data dan Perangkat Lunak Riset Sumber Terbuka
- Postman: Buat dan Uji API

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































