YokAPI

Python Requests Aiohttp Asyncio Pydantic OOP
Project Information
Category
API Development
Date 2025-03

Details and Documentation

Comprehensive Documentation

The detailed usage guide, API reference, and development notes for this project are available in the README file on GitHub.

About the Project

YokAPI

An API Layer That Normalizes YOK Data

About the Project

YokAPI is a data layer designed for developers that serves YOK Atlas data through a standardized API. It normalizes the year-to-year inconsistencies and scattered structure of YOK Atlas, delivering standardized JSON for fast, async bulk data fetching. By unifying education data from different sources into a consistent format, it makes integration in other projects much easier.

Example Usage


from YokAPI import Lisans, Onlisans
import asyncio

async def main():
    async with Lisans(program_id=108210665, year=2024) as lisans:
        # Get normalized data
        data = await lisans.get_program_data()
        print(data)

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

Project Impact

YokAPI powers the core data layer of Sinavizcisi.com and enables other developers to access education data with ease.

Technical Details

API Design & Architecture

Asynchronous Operations

High-performance, non-blocking HTTP requests with aiohttp and asyncio

  • Concurrent request management
  • Connection pool optimization
  • Timeout and retry mechanisms

Data Modeling

Strong type checking and validation with Pydantic

  • Automatic JSON output preparation
  • Safer development with type hints
  • Custom validation rules for data integrity

Code Architecture

Session Management

Flexible session management based on user preference:

# Auto 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)

Data Processing Pipeline

Data Fetching

Async fetching of raw data from YOK Atlas

Normalization

Standardizing inconsistent formats

Validation

Data validation with Pydantic models

API Response

Standardized JSON response

Other Projects

Take a look at the other projects I built

Sinavizcisi

A web platform where I analyze YKS placement data and university reviews with AI and present them to students.

Django PostgreSQL Transformers

EBA Score Bot

A desktop bot with a GUI that automates earning points on EBA.

Python Selenium PyQt5

Turkish University Department Data (2019-2024)

A comprehensive dataset that cleans and standardizes 2019-2024 undergraduate and associate program data collected from YOK Atlas and OSYM.

Python Pandas CSV