YokAPI

Python Requests Aiohttp Asyncio Pydantic OOP
Proje Bilgileri
Kategori
API Geliştirme
Tarih 2025-03

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.

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.

Ö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 ve diğer geliştiricilerin de eğitim verilerine kolayca erişmesini sağlıyor.

Teknik Detaylar

API Tasarımı & Mimarisi

Asenkron İşlemler

aiohttp ve asyncio kullanarak yüksek performanslı, bloklamayan HTTP istekleri

  • Eşzamanlı istek yönetimi
  • Bağlantı havuzu optimizasyonu
  • Zaman aşımı ve yeniden deneme mekanizmaları

Veri Modelleme

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

  • JSON çıktılarının otomatik hazırlanması
  • Tip ipuçlarıyla daha güvenli geliştirme
  • Özel doğrulama kurallarıyla veri kontrolü

Kod Mimarisi

Oturum Yönetimi

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

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

# Özel oturum
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 Yanıtı

Standartlaştırılmış JSON yanıtı

Diğer Projeler

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

Sınavİzcisi

YKS yerleşme verilerinin ve üniversite yorumlarının yapay zekâ ile analiz edilip kullanıcıya sunduğum web platformu.

Django PostgreSQL Transformers

EBA Puan Botu

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

Python Selenium PyQt5

Türkiye Üniversite Bölüm Verileri (2019–2024)

YÖK Atlas ve ÖSYM kaynaklarından toplanan 2019–2024 lisans/önlisans verilerini temizleyip standardize ederek analize hazır hale getiren kapsamlı veri seti.

Python Pandas CSV