Python'da sertifika API'leri için requests kütüphanesi genellikle yeterlidir. Oturum (session), zaman aşımı ve yeniden deneme ayarlarını bir kez tanımlayıp tüm çağrılarda kullanmak kodu sadeleştirir.
Kurulum
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install requests
Sağlam bir oturum
import os
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
def oturum_olustur():
s = requests.Session()
s.headers.update({
"Authorization": f"Bearer {os.environ['SSL_API_TOKEN']}",
"Content-Type": "application/json",
})
retry = Retry(total=3, backoff_factor=1,
status_forcelist=[429, 500, 502, 503, 504],
allowed_methods=["GET"])
s.mount("https://", HTTPAdapter(max_retries=retry))
return s
s = oturum_olustur()
r = s.get("https://api.ornek-ca.example/v1/orders", timeout=30)
r.raise_for_status()
for siparis in r.json().get("data", []):
print(siparis["domain"], siparis["status"])
Adres ve alan adları örnektir. Burada yalnızca GET isteği otomatik yeniden denenir; sipariş gibi POST işlemlerini körlemesine tekrarlamak çift sipariş riski doğurur.
İyi uygulamalar
- Her çağrıda
timeoutverin; varsayılan sınırsızdır. verify=Falsekullanmayın; hatayı kök nedeninden çözün (güncelcertifipaketi).- Anahtarı koda yazmayın, ortam değişkeni veya gizli yöneticisi kullanın.
- Yanıt şemasını doğrulayın; beklenmeyen alanlarda uyarı üretin.
Bitiş tarihi izleme örneği
Standart kütüphane ile bir sunucunun sertifika bitişini kontrol etmek için ssl ve socket modülleri yeterlidir; bu sayede API'den bağımsız bir ikinci kontrol elde edersiniz.
Elde ettiğiniz sonuçları SSL denetleyici ile çapraz kontrol edebilir, ürün seçimi için SSL sertifikaları sayfasına bakabilirsiniz.
Komut satırı aracı yapmak
Kodunuzu argparse ile küçük bir araca dönüştürüp liste, durum ve indir alt komutları ekleyebilirsiniz. Böylece aynı kodu hem zamanlanmış görevde hem elle kullanabilirsiniz. Günlükleme için logging modülünü kullanın ve anahtarları çıktıya yazmayın.