Cara Ekstraksi Data dari API untuk Data Pipeline dengan Python

Maurice Odida

Maurice Odida

7 June 2025

Cara Ekstraksi Data dari API untuk Data Pipeline dengan Python

Application Programming Interfaces (API) telah muncul sebagai tulang punggung arsitektur data modern. Mereka adalah saluran tempat aplikasi berkomunikasi dan bertukar informasi, menjadikannya sumber daya yang tak ternilai untuk membangun data pipeline yang kuat dan dinamis. Kemampuan untuk mengekstraksi data dari API secara efektif menggunakan bahasa yang serbaguna seperti Python adalah keterampilan dasar bagi setiap insinyur data, ilmuwan data, atau analis. Artikel ini akan menggali seluk-beluk proses ini, memberikan panduan komprehensif tentang cara memanfaatkan kekuatan API untuk menggerakkan data pipeline Anda.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One agar Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Peran API dalam Data Pipeline

Pada intinya, data pipeline adalah serangkaian proses otomatis yang memindahkan data dari sumber ke tujuan. Tahap awal dan bisa dibilang paling kritis dari pipeline ini adalah ekstraksi data. Meskipun data dapat bersumber dari basis data, file, atau platform streaming, API menawarkan keuntungan unik: akses ke data real-time, dinamis, dan seringkali berpemilik dari berbagai layanan web dan aplikasi.

Baik itu mengambil data keuangan dari API pasar saham, mengumpulkan tren media sosial dari API platform, atau mengakses informasi pelanggan dari API sistem CRM, kemampuan untuk mengambil informasi ini secara terprogram adalah fundamental. Python, dengan ekosistem pustaka yang kaya dan sintaksis yang lugas, telah menjadi bahasa de facto untuk tugas ini. Kesederhanaannya memungkinkan pengembangan cepat, sementara pustaka yang kuat menyediakan alat yang diperlukan untuk menangani kompleksitas interaksi API.

Melakukan Panggilan API Pertama Anda dengan Python

Perjalanan ke ekstraksi data API dimulai dengan permintaan HTTP sederhana. Pustaka requests di Python adalah standar emas untuk tujuan ini. Ini mengabstraksi kompleksitas pembuatan permintaan HTTP, menyediakan antarmuka yang sederhana dan elegan.

Untuk memulai, Anda harus menginstal pustaka terlebih dahulu:Python

pip install requests

Setelah terinstal, Anda dapat membuat permintaan GET ke titik akhir API. Titik akhir hanyalah URL spesifik yang menyediakan sekumpulan data. Untuk contoh ini, mari kita gunakan JSONPlaceholder API, API REST online gratis yang dapat Anda gunakan untuk pengujian dan pembuatan prototipe.Python

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts/1')

# Check if the request was successful
if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print(f"Failed to retrieve data: {response.status_code}")

Dalam cuplikan ini, requests.get() mengirim permintaan GET ke URL yang ditentukan. Objek response berisi respons server terhadap permintaan kita. Atribut status_code memberi tahu kita apakah permintaan berhasil. Kode status 200 menunjukkan keberhasilan. Metode response.json() kemudian mengurai konten JSON dari respons menjadi kamus Python, sehingga mudah untuk dikerjakan.

Menangani Format Data yang Berbeda

Meskipun JSON (JavaScript Object Notation) adalah format data paling umum untuk API, Anda mungkin menemukan format lain, seperti XML (eXtensible Markup Language). Pustaka requests dapat menangani berbagai jenis konten. Untuk XML, Anda mungkin perlu menggunakan pustaka seperti xml.etree.ElementTree untuk mengurai data.Python

import requests
import xml.etree.ElementTree as ET

response = requests.get('URL_TO_XML_API')

if response.status_code == 200:
    root = ET.fromstring(response.content)
    # Now you can traverse the XML tree
    for child in root:
        print(child.tag, child.attrib)
else:
    print(f"Failed to retrieve data: {response.status_code}")

Kuncinya adalah memeriksa header Content-Type dari respons untuk memahami format data yang Anda terima dan menggunakan pustaka penguraian yang sesuai.

Menavigasi Labirin Otentikasi API

Sebagian besar API memerlukan beberapa bentuk otentikasi untuk mengidentifikasi pengguna dan mengontrol akses ke data. Ini penting untuk keamanan dan untuk melacak penggunaan API. Ada beberapa metode otentikasi umum:

Kunci API

Ini adalah salah satu bentuk otentikasi paling sederhana. Penyedia API memberi Anda kunci unik yang harus Anda sertakan dalam permintaan Anda. Kunci ini biasanya diteruskan sebagai parameter kueri di URL atau di header permintaan.Python

import requests

api_key = 'YOUR_API_KEY'
headers = {'Authorization': f'Bearer {api_key}'}

response = requests.get('https://api.example.com/data', headers=headers)

OAuth

OAuth (Open Authorization) adalah standar otentikasi yang lebih aman dan kompleks. Ini memungkinkan pengguna untuk memberikan akses terbatas kepada aplikasi pihak ketiga ke sumber daya mereka tanpa membagikan kredensial mereka. Prosesnya1 biasanya melibatkan jabat tangan multi-langkah di mana aplikasi memperoleh token akses, yang kemudian digunakan untuk membuat permintaan yang diautentikasi. Pustaka seperti requests-oauthlib dapat menyederhanakan proses ini.

Otentikasi Dasar

Metode ini melibatkan pengiriman nama pengguna dan kata sandi dengan setiap permintaan. Kredensial biasanya dikodekan dalam Base64 dan dikirim dalam header Authorization. Pustaka requests memiliki cara yang nyaman untuk menangani ini:Python

from requests.auth import HTTPBasicAuth

response = requests.get('https://api.example.com/data', auth=HTTPBasicAuth('your_username', 'your_password'))

Seni Menangani Pembatasan Tingkat (Rate Limiting)

Untuk mencegah penyalahgunaan dan memastikan penggunaan yang adil, sebagian besar API memberlakukan pembatasan tingkat (rate limits), yang membatasi jumlah permintaan yang dapat dibuat pengguna dalam periode waktu tertentu. Melebihi batas ini biasanya akan menghasilkan kode status 429 Too Many Requests. Skrip ekstraksi data yang kuat harus menangani batas-batas ini dengan baik.

Strategi umum adalah memasukkan periode tunggu dalam kode Anda. Pustaka time di Python adalah teman Anda di sini.Python

import requests
import time

for i in range(100):
    response = requests.get('https://api.example.com/data')
    if response.status_code == 200:
        # Process the data
        pass
    elif response.status_code == 429:
        print("Rate limit exceeded. Waiting...")
        retry_after = int(response.headers.get('Retry-After', 10)) # Check for a 'Retry-After' header
        time.sleep(retry_after)
    else:
        print(f"An error occurred: {response.status_code}")
        break

Loop sederhana ini mencoba membuat permintaan. Jika mencapai batas tingkat, ia memeriksa header Retry-After (yang disediakan beberapa API untuk menunjukkan berapa lama harus menunggu) dan kemudian menjeda eksekusi sebelum mencoba lagi.

Menaklukkan Penomoran Halaman (Pagination): Kisah yang Tak Berakhir

Ketika titik akhir API mengembalikan dataset yang besar, seringkali akan "dipaginasi", artinya data dibagi di beberapa halaman. Skrip Anda harus dapat menavigasi melalui halaman-halaman ini untuk mengekstrak semua data. Ada beberapa strategi penomoran halaman umum:

Penomoran Halaman Berbasis Offset

Ini adalah salah satu metode paling umum. API akan memiliki parameter seperti offset (atau page) dan limit (atau per_page). Anda menambah nomor offset atau page di setiap permintaan berikutnya untuk mendapatkan potongan data berikutnya.Python

import requests

base_url = 'https://api.example.com/data'
page = 1
all_data = []

while True:
    params = {'page': page, 'per_page': 100}
    response = requests.get(base_url, params=params)
    if response.status_code == 200:
        data = response.json()
        if not data: # No more data
            break
        all_data.extend(data)
        page += 1
    else:
        print(f"Failed to retrieve data: {response.status_code}")
        break

Penomoran Halaman Berbasis Kursor

Metode ini menggunakan "kursor", yang merupakan penunjuk ke item tertentu dalam dataset. Setiap respons API akan menyertakan bidang next_cursor atau yang serupa. Anda menggunakan kursor ini dalam permintaan berikutnya untuk mendapatkan set data berikutnya. Metode ini umumnya lebih efisien untuk dataset yang sangat besar.Python

import requests

base_url = 'https://api.example.com/data'
next_cursor = None
all_data = []

while True:
    params = {'cursor': next_cursor} if next_cursor else {}
    response = requests.get(base_url, params=params)
    if response.status_code == 200:
        data = response.json()
        all_data.extend(data['results'])
        next_cursor = data.get('next_cursor')
        if not next_cursor:
            break
    else:
        print(f"Failed to retrieve data: {response.status_code}")
        break

Menstrukturkan dan Menyimpan Data yang Diekstraksi

Setelah berhasil mengekstraksi data dari API, langkah selanjutnya adalah menyusun dan menyimpannya dengan cara yang sesuai untuk data pipeline Anda. Data JSON atau XML mentah seringkali bersarang dan tidak ideal untuk analisis langsung atau memuat ke dalam basis data relasional.

Pustaka pandas adalah alat yang sangat diperlukan untuk tugas ini. Ini menyediakan DataFrame, struktur data berlabel dua dimensi yang sempurna untuk data tabular.Python

import pandas as pd

# Assuming 'all_data' is a list of dictionaries from the API
df = pd.DataFrame(all_data)

Anda kemudian dapat melakukan berbagai transformasi pada DataFrame, seperti memilih kolom tertentu, mengganti nama kolom, dan menangani nilai yang hilang.

Untuk penyimpanan awal, Anda memiliki beberapa opsi:

Mengotomatiskan Proses Ekstraksi

Data pipeline bukanlah urusan sekali jalan. Anda akan sering perlu mengekstraksi data dari API secara teratur (misalnya, harian, per jam). Di sinilah otomatisasi berperan.

Anda dapat menjadwalkan skrip Python Anda untuk berjalan pada interval tertentu menggunakan alat seperti:

Kesimpulan: Membangun Proses Ekstraksi yang Tangguh

Mengekstraksi data dari API adalah keterampilan dasar untuk membangun data pipeline modern. Meskipun dasar-dasar pembuatan permintaan API lugas, membangun proses ekstraksi yang tangguh dan siap produksi memerlukan pertimbangan cermat terhadap otentikasi, pembatasan tingkat, penomoran halaman, dan penanganan kesalahan. Dengan memanfaatkan kekuatan Python dan ekosistem pustaka yang kaya, Anda dapat secara efektif memanfaatkan lautan data yang luas yang tersedia melalui API dan membangun data pipeline yang kuat dan andal. Perjalanan dari requests.get() sederhana ke skrip ekstraksi data yang sepenuhnya otomatis dan terjadwal adalah bukti kekuatan dan fleksibilitas Python dalam dunia rekayasa data.

💡
Ingin alat Pengujian API yang hebat yang menghasilkan Dokumentasi API yang indah?

Ingin platform Terintegrasi, All-in-One agar Tim Pengembang Anda bekerja sama dengan produktivitas maksimum?

Apidog memenuhi semua permintaan Anda, dan menggantikan Postman dengan harga yang jauh lebih terjangkau!
button

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.