ASP Genel VMware

ASP.NET Core ile API Geliştirme: Temel Rehber

ASP.NET Core ile API Geliştirme: Temel Rehber

ASP.NET Core ile API Geliştirme: Temel Rehber

ASP.NET Core, modern web uygulamaları ve API’ler geliştirmek için güçlü ve esnek bir platform sunar. Bu makalede, ASP.NET Core ile API geliştirme sürecine odaklanacağız. API’lerin nasıl yapılandırılacağı, temel bileşenleri ve performans optimizasyonları gibi konuları detaylandıracağız.

ASP.NET Core API Nedir?

ASP.NET Core, Microsoft tarafından geliştirilen açık kaynaklı, platformlar arası bir framework’tür. API’ler, farklı uygulamaların birbiriyle iletişim kurmasına olanak tanır. ASP.NET Core ile geliştirilen API’ler, RESTful prensiplerine uygun, ölçeklenebilir ve performanslı çözümler sunar.

API Projesi Oluşturma

ASP.NET Core ile API geliştirmeye başlamak için öncelikle bir proje oluşturmanız gerekir. .NET CLI veya Visual Studio kullanarak hızlıca bir API projesi oluşturabilirsiniz.

.NET CLI ile Proje Oluşturma

dotnet new webapi -n MyApiProject

Bu komut, MyApiProject adında yeni bir ASP.NET Core Web API projesi oluşturur.

Visual Studio ile Proje Oluşturma

1. Visual Studio’yu açın ve “Yeni Proje Oluştur” seçeneğini tıklayın.

  1. “ASP.NET Core Web API” şablonunu seçin.
3. Proje adını ve konumunu belirleyin, ardından “Oluştur” butonuna tıklayın.

Temel Bileşenler

ASP.NET Core API projelerinde birkaç temel bileşen bulunur. Bunlar, Controller’lar, Middleware’ler ve Dependency Injection gibi kavramlardır.

Controller’lar

Controller’lar, API isteklerini işleyen sınıflardır. Her bir Controller, bir veya birden fazla endpoint tanımlayabilir.

using Microsoft.AspNetCore.Mvc;

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
    [HttpGet]
    public IEnumerable<WeatherForecast> Get()
    {
        // İş mantığı burada yer alır
    }
}

Bu örnekte, WeatherForecastController sınıfı bir HTTP GET isteği işleyen bir endpoint tanımlar.

Middleware

Middleware, HTTP isteklerini işleyen yazılım bileşenleridir. ASP.NET Core, istekleri işlemek için bir middleware zinciri kullanır.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseRouting();

    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

Bu örnekte, uygulama isteklerini yönlendirmek için gerekli middleware bileşenleri yapılandırılmıştır.

Dependency Injection

ASP.NET Core, yerleşik Dependency Injection (DI) desteği sunar. DI, sınıfların bağımlılıklarını dışarıdan almasını sağlar.

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddScoped<IMyService, MyService>();
}

Bu örnekte, IMyService arayüzü MyService sınıfı ile eşleştirilmiştir.

Veri Erişimi

API’ler genellikle veri ile çalışır. ASP.NET Core, veri erişimi için Entity Framework Core gibi güçlü araçlar sunar.

Entity Framework Core Kullanımı

Entity Framework Core, veritabanı işlemlerini kolaylaştıran bir ORM (Object-Relational Mapping) aracıdır.

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }

    public DbSet<Product> Products { get; set; }
}

Bu örnekte, ApplicationDbContext sınıfı veritabanı bağlantısını ve Products tablosunu tanımlar.

Veritabanı Bağlantısı Yapılandırma

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

Bu örnek, DefaultConnection bağlantı dizesi kullanılarak SQL Server’a bağlanmayı gösterir.

Performans Optimizasyonu

Performans, API geliştirme sürecinde önemli bir faktördür. ASP.NET Core, performansı artırmak için çeşitli özellikler sunar.

Caching

Caching, sık kullanılan verilerin saklanarak daha hızlı erişilmesini sağlar.

public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCaching();
}

public void Configure(IApplicationBuilder app)
{
    app.UseResponseCaching();
}

Bu örnekte, yanıt önbellekleme etkinleştirilmiştir.

Asenkron Programlama

Asenkron programlama, API performansını artırmanın etkili bir yoludur.

[HttpGet]
public async Task<IEnumerable<Product>> GetProductsAsync()
{
    return await _context.Products.ToListAsync();
}

Bu örnek, veritabanından ürünleri asenkron olarak getirir.

Güvenlik

API güvenliği, kullanıcı verilerini korumak için kritik öneme sahiptir. ASP.NET Core, güvenlik için çeşitli mekanizmalar sunar.

JWT Authentication

JWT (JSON Web Token), API’ler için yaygın olarak kullanılan bir kimlik doğrulama yöntemidir.

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidateAudience = true,
                ValidateLifetime = true,
                ValidateIssuerSigningKey = true,
                ValidIssuer = Configuration["Jwt:Issuer"],
                ValidAudience = Configuration["Jwt:Audience"],
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Key"]))
            };
        });
}

Bu örnek, JWT kimlik doğrulamasını yapılandırır.

Hata Yönetimi

Hata yönetimi, API’lerin güvenilirliğini artırmak için önemlidir.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseExceptionHandler("/Home/Error");
}

Bu örnek, hata yönetimi için bir hata işleyici tanımlar.

Sonuç

ASP.NET Core ile API geliştirmek, esnek ve güçlü bir çözüm sunar. Performans, güvenlik ve veri erişimi gibi konularda sunduğu araçlar sayesinde, modern ve ölçeklenebilir API’ler oluşturabilirsiniz. İster VDS Sunucular üzerinde ister Cloud Sunucular üzerinde çalışın, ASP.NET Core ile güçlü API’ler geliştirmek mümkün.