ASP.NET Core'da ControllerBase Sınıfı

A

Giriş

ASP.NET Core, modern, bulut tabanlı ve internet bağlantılı uygulamalar geliştirmek için kullanılan, çapraz platformlu, yüksek performanslı ve açık kaynak bir framework'tür. ASP.NET Core uygulamasının temel yapı taşlarından biri, HTTP isteklerini işleyen kontrolörlerin temel sınıfı olan ControllerBase sınıfıdır.

ControllerBase Sınıfı Nedir?

ControllerBase sınıfı, HTTP isteklerini işleyen ASP.NET Core'daki denetleyiciler için bir temel sınıftır. HTTP isteklerini işlemek ve HTTP yanıtları üretmek için kullanılan bir dizi ortak özellik ve yöntem sağlar. ControllerBase sınıfı, herhangi bir belirli davranış veya mantık uygulamaz; bunun yerine, türetilen sınıfların kullanabileceği ortak yöntemler ve özellikler sunar.

ControllerBase sınıfı, Microsoft.AspNetCore.Mvc isim alanında tanımlanmıştır ve ASP.NET Core MVC framework'ünün bir parçasıdır. Controller sınıfından türetilmiştir ve API'ler ve mikroservisler oluşturmak için daha basit, hafif bir alternatif sağlar.

ControllerBase Sınıfının Temel Özellikleri

ControllerBase sınıfı, ASP.NET Core’da web uygulamaları ve API’ler geliştirmek için gerekli olan birçok önemli özellik ve işlevsellik sağlar. Bu sınıfın en dikkat çekici özelliklerinden bazıları şunlardır:

Action Results (Eylem Sonuçları)

ControllerBase sınıfı, bir HTTP isteğine yanıt olarak istemciye döndürülebilecek eylem sonuçları üretmek için kullanılan yöntemler sunar. Bu eylem sonuçları şunlardır:

  • ViewResult: Bir HTML yanıtı oluşturmak için bir görünüm (view) render eder.
  • PartialViewResult: Bir HTML yanıtı oluşturmak için kısmi bir görünüm (partial view) render eder.
  • JsonResult: Bir nesneyi JSON formatına dönüştürür ve bu formatta yanıt olarak döner.
  • ContentResult: Bir string ya da içerik (content) yanıt olarak döner.
  • StatusCodeResult: Yanıt olarak bir HTTP durum kodu döner.
  • RedirectResult: İsteği başka bir URL’ye yönlendirir.
  • FileResult: Yanıt olarak bir dosya döner.
  • ObjectResult: Bir nesneyi belirtilen bir formata (örneğin, JSON veya XML) dönüştürerek yanıt olarak döner.

Yönlendirme (Routing)

ControllerBase sınıfı, kontrolörler ve eylemler (actions) için yönlendirmeyi (routing) yapılandırmak amacıyla kullanılan bir dizi özellik ve yöntem sunar. Bu özellikler şunlardır:

  • RouteAttribute: Bir kontrolör veya eylem için URL desenini belirtmek amacıyla kullanılır.
  • HttpGetAttribute, HttpPostAttribute, HttpPutAttribute, HttpDeleteAttribute: Bir eylem için hangi HTTP yönteminin kullanılacağını belirtmek amacıyla kullanılır.
  • RouteData: Mevcut istek için yönlendirme verilerine erişim sağlayan bir özelliktir.

Model Bağlama (Model Binding)

ControllerBase sınıfı, HTTP istek verilerini eylem parametrelerine bağlamak için yöntemler sunar. Bu yöntemler şunlardır:

  • FromQueryAttribute: Sorgu dizesinden (query string) veri bağlamak için kullanılır.
  • FromRouteAttribute: URL segmentinden veri bağlamak için kullanılır.
  • FromHeaderAttribute: HTTP başlığından veri bağlamak için kullanılır.
  • FromBodyAttribute: İstek gövdesinden veri bağlamak için kullanılır.

ControllerBase Sınıfının Örnek Kullanımı

ControllerBase sınıfının pratikte nasıl kullanılabileceğini göstermek için basit bir örneğe bakalım. Diyelim ki bir API oluşturmak istiyoruz ve bu API, bir kullanıcı listesini döndürecek. Bu senaryoda, UserController sınıfını oluşturabilir ve ControllerBase sınıfından türetebiliriz. Aşağıdaki gibi:

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

[ApiController]
[Route("api/[controller]")]
public class UserController : ControllerBase {
    private readonly List<string> users = new List<string> {
        "Aydın Yağız"
    };

    [HttpGet]
    public IActionResult GetUsers() {
        return new JsonResult(users);
    }
}

Bu örnekte:

  • [ApiController]: Sınıfın bir API denetleyicisi olduğunu belirtir.
  • [Route("api/[controller]")]: Denetleyici için URL yönlendirmesini ayarlar. [controller] ifadesi sınıfın adını alarak otomatik olarak URL'yi oluşturur.
  • [HttpGet]: GetUsers yönteminin bir HTTP GET isteği ile çağrılacağını belirtir.
  • JsonResult(users): Kullanıcı listesini JSON formatında döndürür.

Bu örnek, basit bir kullanıcı listesini döndüren bir API’nin nasıl yapılandırılacağını göstermektedir.

Sonuç

ControllerBase sınıfı, ASP.NET Core'daki kontrolörlerin temel yapı taşıdır ve HTTP isteklerini işlemek ve HTTP yanıtları oluşturmak için zengin bir özellik ve işlev seti sunar. ControllerBase sınıfının sunduğu yeteneklerden yararlanarak, geliştiriciler güçlü, yüksek performanslı ve bakımı kolay web uygulamaları ve API'ler oluşturabilirler.

By Aydın Yağız

Aydın Yağız

Teknolojiye olan tutkumla inovasyonu destekler, kullanıcı deneyimini önceliklerim arasına alırım. Kendi yeteneklerimi ve bilgilerimi paylaşarak, daha geniş bir topluluğun faydalanmasını sağlarım. İş birliği içinde hareket ederek, geleceğin teknoloji dünyasına katkıda bulunmayı hedeflerim. Sizi de bu heyecan verici yolculuğa davet ediyor, fikirlerinizi paylaşmaya ve teknolojiye dair sınırları zorlamaya teşvik ediyorum. Birlikte büyüyelim ve yeni ufuklara açılalım!

İletişime Geçin

Kodlama dünyasına adım atın ve deneyimlerinizi paylaşın. Siz de bu aktif topluluğa katılarak yeni bağlantılar kurun, fikir alışverişinde bulunun ve bilgi birikiminizi artırın.

Özelleştir

Farklı yazı tipleri ve renk seçenekleriyle stilinizi kişiselleştirin. Aşağıdaki örneklerden birini deneyerek sizin için en uygun olanı seçin.

Yazı Tipi Örnekleri

Renk Örnekleri