Metadata-Version: 2.4
Name: apiservisim
Version: 0.1.0
Summary: Apiservisim Türkçe API'leri için bağımlılıksız Python istemcisi
Project-URL: Homepage, https://apiservisim.vercel.app/
Project-URL: Repository, https://github.com/fortextexe/apiservisim
Keywords: apiservisim,api,turkey,türkçe,sdk
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# Apiservisim Python SDK

Apiservisim'in Türkçe API'lerine Python ile erişmek için küçük, bağımlılıksız istemci.

> `pip install apiservisim` komutu paket PyPI'da yayımlandıktan sonra kullanılabilir. Şu anki kaynak koduyla kurmak için aşağıdaki yerel kurulumu kullanın.

## Kurulum

```bash
python -m pip install .
```

Bu komutu `python-sdk` klasöründe çalıştırın. Python 3.10 veya üzeri gerekir.

## Kullanım

```python
from apiservisim import ApiServisim

api = ApiServisim()

# Genel bir endpoint: kısa yol veya /api/... biçimi kullanılabilir.
doviz = api.get("doviz")
haberler = api.get("/api/haberler", params={"adet": 5})

print(doviz)
print(haberler)
```

JSON yanıtları Python nesnesi olarak döner. Görsel veya video gibi JSON olmayan yanıtlar `bytes` olarak döner. GET ve POST dışında bir HTTP metodu gerekirse `request` kullanılabilir:

```python
sonuc = api.request("DELETE", "/api/ornek", params={"id": 123})
```

### T.C. Kimlik No Kontrol API'si

```python
import os
from apiservisim import ApiServisim

sonuc = ApiServisim().tckimlik(
    tc=os.environ["TC_KIMLIK_NO"],
    ad=os.environ["KISI_ADI"],
    soyad=os.environ["KISI_SOYADI"],
    dogum_yili=1990,
)
print(sonuc)
```

Bu endpoint **yalnızca yerel biçim ve kontrol basamağı algoritmasını** çalıştırır. NVI/MERNİS bağlantısı yoktur ve gerçek bir kişinin kimliğini doğrulamaz. Gerçek kişisel verileri GET URL'sine koymayın veya günlüklerde saklamayın; örnekteki `tckimlik` metodu POST JSON kullanır.

### Özel sunucu adresi, zaman aşımı ve hatalar

```python
from apiservisim import ApiServisim, ApiServisimHTTPError

api = ApiServisim(
    base_url="https://apiservisim.vercel.app",
    timeout=20,
)

try:
    sonuc = api.get("saat", params={"sehir": "İstanbul"})
except ApiServisimHTTPError as hata:
    print(hata.status_code, hata.body)
```

`ApiServisimConnectionError`, bağlantı ve zaman aşımı sorunlarında; `ApiServisimHTTPError` ise API'nin 4xx/5xx yanıtlarında yükseltilir. Yanıt gövdesi JSON değilse `ApiServisimHTTPError.body` metin olarak kullanılabilir.

SOAP uyumluluk endpoint'ine ham gövde göndermek için:

```python
xml = "<soap:Envelope>...</soap:Envelope>"
yanit = api.post(
    "/Service/KPSPublic.asmx",
    data=xml,
    headers={"Content-Type": "text/xml"},
)
```

## Geliştirme ve test

```bash
python -m unittest discover -s tests -v
python -m pip install .
```

SDK yalnızca Python standart kütüphanesini kullanır; `requests` veya `httpx` kurulumu gerekmez.
