YokAPI

Python Requests Aiohttp Asyncio Pydantic OOP

Detaylar ve Dokümantasyon

Kapsamlı Dokümantasyon

Bu proje için detaylı kullanım kılavuzu, API referansı ve geliştirme notları GitHub'da bulunan README dosyasında yer almaktadır.

GitHub README'yi İncele

Proje Hakkında

YokAPI

YÖK Verilerini Normalize Eden API Katmanı

Proje Hakkında

YokAPI, YÖK Atlas verilerini tek bir standardize edilmiş API üzerinden sunan, geliştiriciler için tasarlanmış bir veri katmanıdır. Asenkron yapıya sahip toplu ve hızlı veri çekme işlemleri için YÖK Atlas'ın yıllara göre dağınık ve farklılaşan site yapısını normalize edip standartlaştırılmış bir şekilde JSON olarak sunan güçlü bir araçtır. Farklı kaynaklardan gelen eğitim verilerini birleştirip, tutarlı bir format halinde sunarak diğer projelerde kullanımını kolaylaştırır.

Temel Özellikler

Asenkron Performans

aiohttp ve asyncio ile yüksek performanslı veri işleme

Tip Güvenliği

Pydantic modeller ile güvenli veri kullanımı

Kolay Entegrasyon

Basit API endpointleri ve Python kütüphanesi

Esnek Kullanım

Kendi session'ınızı kullanabilir veya otomatik oluşturabilirsiniz

Örnek Kullanım


from YokAPI import Lisans, Onlisans
import asyncio

async def main():
    async with Lisans(program_id=108210665, year=2024) as lisans:
        # Normalize edilmiş veri al
        data = await lisans.get_program_data()
        print(data)

if __name__ == "__main__":
    asyncio.run(main())
                

Proje İmpactı

YokAPI, Sınavİzcisi.com projesinin temel veri katmanını oluşturuyor. MIT lisansı ile açık kaynak olarak sunulan bu proje, diğer geliştiricilerin de eğitim verilerine kolayca erişmesini sağlıyor.

Öne Çıkan Özellikler

Normalize Edilmiş Veri

Farklı kaynaklardan gelen YÖK Atlas verileri tek formatta sunulur.

Kolay Entegrasyon

Basit REST endpointleri ve Python kütüphanesi ile hızlıca projelere entegre edilir.

Asenkron Destek

aiohttp ve asyncio ile yüksek performanslı, asenkron veri çekme desteği.

Zengin Veri Modelleri

Pydantic tabanlı güçlü modeller ile güvenli ve tip kontrollü veri kullanımı.

Gelişmiş Fonksiyonlar

Kontenjan, taban puan, tercih istatistikleri, lise ve il bazlı dağılımlar gibi onlarca fonksiyon.

Esnek Session Kullanımı

Kendi aiohttp sessionunuzu kullanabilir veya otomatik oluşturulan session ile çalışabilirsiniz.

Teknik Detaylar

API Tasarımı & Mimarisi

Asenkron İşlemler

aiohttp ve asyncio kullanarak yüksek performanslı, non-blocking HTTP istekleri

  • Concurrent request handling
  • Connection pooling optimizasyonu
  • Timeout ve retry mekanizmaları

Veri Modelleme

Pydantic ile güçlü tip kontrolü ve veri validasyonu

  • Automatic JSON serialization/deserialization
  • Type hints ile IDE desteği
  • Custom validators ile veri kontrolü

Kod Mimarisi

Session Management

Esnek session yönetimi ile kullanıcı tercihine göre:

# Otomatik session
async with Lisans(program_id=123) as api:
    data = await api.get_data()

# Custom session
session = aiohttp.ClientSession()
api = Lisans(program_id=123, session=session)

Veri İşleme Pipeline

Veri Çekme

YÖK Atlas'tan ham verilerin asenkron çekilmesi

Normalizasyon

Tutarsız formatların standart hale getirilmesi

Validasyon

Pydantic modeller ile veri doğrulaması

API Response

Standartlaştırılmış JSON response

Proje Bilgileri

Kategori

API Geliştirme

Geliştirme Tarihi

2025-03

Ek Bilgiler

  • License: MIT

İş Birliği Yapalım

Bu proje ilginizi çekti mi? Benzer bir proje geliştirmek istiyorsanız iletişime geçelim.

İletişim Kur

Diğer Projeler

Geliştirdiğim diğer projelere de göz atın

Sınavİzcisi

YKS verilerini analiz eden ve yapay zekâ destekli tercih tahmini yapan web platformu. Django + PostgreSQL + Transformers kullanıldı.

Django PostgreSQL Transformers

EBA Puan Botu

EBA'da puan kasmayı sağlayan masaüstü arayüze sahip bir bot.

Python Selenium PyQt5