Skip to content

Afsarsyusuf/WebAPI

Repository files navigation

🚀 C# Advanced Concepts & ASP.NET Core Web API Architecture

Bu proje, modern yazılım geliştirme prensiplerini, İleri Seviye C# (Reflection, Attributes) konularını ve ASP.NET Core Middleware/Filter mimarisini kapsamlı bir senaryo üzerinde uygular.

Proje iki ana modülden oluşmaktadır:

  1. Console Application: C# temelleri, bellek yönetimi (Struct) ve Reflection ile metadata analizi.
  2. Web API: "Headless" mimari, özel Middleware entegrasyonu, AOP (Aspect Oriented Programming) benzeri filtrelemeler ve sistem haritasını çıkaran dinamik endpointler.

🏗️ Proje Mimarisi ve Özellikler

1️⃣ Bölüm: Console App (Core & Reflection)

C# dilinin derinliklerine inilen bu modülde aşağıdaki yapılar uygulanmıştır:

  • Struct & Value Types: Referans tipleri yerine Struct kullanılarak bellek yönetimi (Stack vs Heap) simüle edildi.
  • Advanced Exception Handling: Try-Catch-Finally blokları ile DivideByZero ve Format hataları yönetildi.
  • Custom Attributes: Kod parçalarını etiketlemek için [DeveloperInfo] isminde özel bir nitelik (attribute) geliştirildi.
  • Reflection Reporting: Çalışma zamanında (Runtime) kodun kendisi analiz edilerek; hangi sınıfı kimin yazdığını raporlayan bir Reflection Motoru yazıldı.

2️⃣ Bölüm: ASP.NET Core Web API

RESTful prensiplerine uygun, genişletilebilir bir backend mimarisi kuruldu:

  • Custom Middleware (Pipeline): Her gelen isteği (Request) ve dönen yanıtı (Response) araya girerek yakalayan ve loglayan bir yapı kuruldu.
  • Action Filters (Performance): Metotların çalışma sürelerini milisaniye cinsinden ölçen bir performans monitörü entegre edildi.
  • Global Exception Filter: API genelinde oluşabilecek tüm hataları tek bir merkezde yakalayıp, istemciye standart bir JSON hata formatı dönen mekanizma.
  • System Reflection Endpoint: Projedeki tüm Controller ve Action'ları tarayıp, sistemin "Haritasını" JSON olarak sunan akıllı bir endpoint (/api/System/attribute-map) geliştirildi.

🛠️ Kullanılan Teknolojiler

  • Dil: C# 10/11
  • Framework: .NET 6.0 / 7.0
  • API: ASP.NET Core Web API
  • Documentation: Swagger UI
  • Tools: Visual Studio 2022

🚀 Kurulum ve Çalıştırma

Projeyi yerel makinenizde çalıştırmak için:

  1. Repoyu klonlayın:
    git clone [https://github.com/Afsarsyusuf]
  2. Projeyi Visual Studio ile açın (Odev09Solution.sln).
  3. Odev09.WebApi projesine sağ tıklayıp "Set as Startup Project" deyin.
  4. Projeyi çalıştırın (F5 veya Ctrl+F5).
  5. Tarayıcıda Swagger UI açılacaktır.

👨‍💻 Geliştirici

**Ad Soyad:**Sami Yusuf Afşar

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages