1. API-yə giriş
API, ya da Application Programming Interface (Tətbiq Proqramlaşdırma İnterfeysi), proqramlar və komponentlərin bir-biri ilə qarşılıqlı əlaqədə olduğu qaydalar və mexanizmlər dəstəsidir. API-ni restoranlardakı ofisiant kimi düşünün. Siz (proqram) sifariş verirsiniz (sorğu), ofisiant (API) onu mətbəxə (server) çatdırır, daha sonra sizə yeməyi (cavabı) gətirir. Veb-skreypinqdə API HTML-kodu parseləməyə ehtiyac olmadan məlumatları birbaşa serverdən əldə etməyə imkan verir.
API-ın HTML-skreypinq ilə müqayisəsi
BeautifulSoup kimi alətlərlə veb-skreypinq öyrəndikdə, biz bir sıra məsələlərlə qarşılaşdıq: HTML strukturunun analiz edilməsi, lazımi elementlərin və onların atributlarının tapılması. API vasitəsilə hər şey bir az daha sadədir: siz HTML-teqlərdən ibarət baş sındırmadan keçərək birbaşa strukturlu məlumatları (adətən JSON formatında) əldə edirsiniz. Bu, sanki konstruktoru söküb-anlamayıb, hazır təlimat və detalları əldə etmək kimidir.
API-nin üstünlükləri:
- Strukturlu məlumatlar: əksər API-lər məlumatları strukturlu şəkildə qaytarır (məsələn, JSON), bu da onların emalını asanlaşdırır.
- Stabillik: API-endpoint-ləri veb-səhifələrin HTML-kodlarına nisbətən daha az dəyişir.
- Səmərəlilik: məlumatların API vasitəsilə əldə edilməsi adətən daha sürətli olur və daha az resurs tələb edir.
- Məhdudiyyətləri keçmək: bir çox saytlar məlumatlarını skreypinqdən qorumagə çalışır, lakin API vasitəsilə giriş imkanı təqdim edir.
API-nin çatışmazlıqları:
- Giriş məhdudiyyətləri: API-yə giriş qeydiyyatdan keçməyi, bəzən isə ödəniş etməyi tələb edə bilər.
- Sürət və sorğu həcmi məhdudiyyətləri: API-lər çox vaxt müəyyən vaxt intervalında sorğu sayına limitlər qoyur.
- Dokumentasiyanı öyrənmək məcburiyyəti: API ilə səmərəli işləmək üçün onun dokumentasiyasını öyrənməyə vaxt sərf etmək lazımdır.
2. API-nin praktiki tətbiqi
Quraşdırma və əsas sorğular
API ilə işləmək üçün, yəqin ki, artıq öyrəndiyiniz requests
kitabxanasından istifadə edəcəyik. Gəlin hava ilə bağlı məlumatları məşhur OpenWeather API-dən sorğulayan sadə bir tətbiq yazaq (çünki proqramlaşdırma təkcə 0 və 1 deyil, həm də yağış və ya günəşdir).
import requests
# 'your_api_key' əvəzinə sizin API açarınızı yazın
api_key = 'your_api_key'
city = 'Moscow'
url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'
response = requests.get(url)
# Sorğunun uğurlu olub-olmadığını yoxlayırıq
if response.status_code == 200:
data = response.json()
print(f"{city} şəhərində temperatur: {data['main']['temp']}K")
else:
print("Hava məlumatlarını əldə edərkən səhv baş verdi")
Məlumatların təhlili və emalı
JSON — sanki CSV-nin daha sərin versiyasıdır! JSON strukturu Python-da dictionary və list-ləri xatırladır, buna görə məlumatları emal etmək az qala intuisiya ilə başa düşülür. Yuxarıdakı nümunədə biz sadəcə lazımi məlumatlara yol göstərərək temperaturu çıxardıq (data['main']['temp']
).
Real Case-lər: API ilə biznes proseslərdə iş
Həyatda API sizin işinizi xeyli asanlaşdıra bilər. Təsəvvür edin ki, siz xəbər göstərən bir xidmət hazırlayırsınız. Onlarla saytı scraping etməkdənsə, xəbər agentliklərinin API-lərindən istifadə edə bilərsiniz ki, onlar sizə təzə məqalələri rahatlıqla təqdim etsin. Yaxud, əgər saytınıza ödəniş inteqrasiyası əlavə etmək istəyirsinizsə, ödəmə sistemlərinin API-ləri (məsələn, PayPal və ya Stripe) bu məsələləri asanlıqla həll edir.
3. Açıq API-lərin istifadəsinə nümunələr
Nümunə: NewsAPI ilə işləmək
Gəlin ən son xəbərləri əldə etmək üçün sadə bir utilit yaradaq.
import requests
api_key = 'your_news_api_key'
url = f'https://newsapi.org/v2/top-headlines?country=us&apiKey={api_key}'
response = requests.get(url)
if response.status_code == 200:
articles = response.json().get('articles', [])
for article in articles:
print(f"Başlıq: {article['title']}")
print(f"Təsvir: {article['description']}")
else:
print("Xəbərləri əldə edərkən səhv baş verdi")
API vasitəsilə əldə edilən məlumatların təhlil nümunələri
API-dən istifadə təkcə məlumat mübadiləsi üçün yox, həm də onun təhlili üçün faydalı ola bilər. Məsələn, birja API-ləri vasitəsilə valyuta və səhm kursları haqqında məlumat əldə edə bilərsiniz ki, bazarın təhlilini aparasınız və ya proqnozlar qurarsınız.
4. API ilə iş strategiyaları
Dokumentasiya ilə naviqasiya
Dokumentasiya — bu, API mövzusunda sizin ən yaxşı dostunuzdur. O, bütün əlçatan endpoint-ləri, mümkün sorğu parametrlərini, qaytarılan məlumatların formatlarını və limitlərini təsvir edir. Dokumentasiyanı oxumaqla keçirdiyiniz vaxta biganə yanaşmayın — bu, özünü dəfələrlə doğruldan bir investisiyadır.
Autentifikasiya və avtorizasiya
Əksər API-lər sizin onlardan istifadə etməyiniz üçün autentifikasiya tələb edir. Adətən bu, API-keys və ya token-lər vasitəsi ilə edilir. API-key müddəti bitmiş və ya təqdim edilməmişdirsə, siz error alacaqsınız. Əməliyyat açarlarını təhlükəsiz yerdə saxlayın və onların ictimai repozitoriyalara düşmədiyinə əmin olun.
Request limitlərini və cavabların emalını idarəetmə
API-lər tez-tez sorğuların sayına məhdudiyyət qoyur. Məsələn, pulsuz versiya yalnız 100 sorğuya icazə verə bilər. Bu halda sorğularınızı optimallaşdırmaq və sorğu limiti tükəndiyi situasiyaları idarə etmək vacibdir. Bunu timeout-lar quraşdıraraq və ya sorğular arasında gecikmələr əlavə edərək edə bilərsiniz.
5. Hesabatlar üçün API-ə qoşulma
İndi, API-lərin necə işlədiyi barədə az-çox məlumatımız var, gəlin kiçik bir layihəni həyata keçirək. Təsəvvür edək ki, biz hava haqqında məlumat toplayan və onu hesabatda saxlayan bir tətbiq üzərində işləyirik.
import requests
import pandas as pd
from datetime import datetime
api_key = 'your_api_key'
cities = ['Moscow', 'New York', 'London']
weather_data = []
for city in cities:
url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'
response = requests.get(url)
if response.status_code == 200:
data = response.json()
weather_data.append({
'City': city,
'Temperature': data['main']['temp'],
'Humidity': data['main']['humidity'],
'Description': data['weather'][0]['description'],
'Timestamp': datetime.now()
})
else:
print(f"Hava məlumatlarını almaqda səhv baş verdi {city}")
# Məlumatları DataFrame-ə çevrilməsi
df = pd.DataFrame(weather_data)
# Məlumatları Excel faylına saxlamaq
df.to_excel('weather_report.xlsx', index=False)
Bu skript vasitəsilə bir neçə şəhər haqqında hava məlumatlarını soruşuruq, onları toplayırıq və Excel hesabatında saxlayırıq. Bu, API-dən istifadə edərək avtomatlaşdırılmış məlumat toplama sistemləri yaratmaq üçün sadə, lakin güclü bir nümunədir.
Bizim üçün API - çox vaxt adi HTML səhifələrində mövcud olmayan böyük məlumat dəstlərinə giriş üçün sehrli bir açar kimidir. Onlar bizə məlumat mübadiləsi etməyə, güclü tətbiqlər yaratmağa və vaxta qənaət etməyə imkan verir. Onlardan istifadə edin və layihələriniz yeni rənglərdə parlasın!
GO TO FULL VERSION