Bu makale, ASPNET Core Web API kullanarak veritabanı işlemlerinin nasıl yapılacağına ve bu işlemler için gerekli olan kütüphanelere değinmektedir Entity Framework Core gibi kütüphanelerden yararlanarak veritabanı işlemleri gerçekleştirilebilir Veritabanına bağlanmak için DataContext sınıfı oluşturulması ve appsettingsjson dosyasında tanımlamalar yapılması gerekmektedir CRUD işlemleri için HTTP POST, GET, PUT, PATCH ve DELETE yöntemleri kullanılabilir Ayrıca, Authentication ve Authorization işlemleri de kullanılabilir Bu makale, ASPNET Core Web API ile veritabanı işlemlerinin avantajlarını ve nasıl yapılacağını anlatarak okuyuculara yardımcı olmaktadır

Bu makale ASP.NET Core Web API kullanarak veritabanı işlemlerinin nasıl yapılacağına dair bilgi sağlamaktadır. Veritabanı işlemleri gerçekleştirmek için Entity Framework Core vb. kütüphaneler kullanılabilir. Veritabanına bağlanmak için DataContext sınıfı oluşturulması gerekir ve appsettings.json dosyasında tanımlamalar yapılmalıdır. CRUD işlemleri için create, read, update ve delete işlemleri kullanılabilir.
HTTP POST yöntemi create (oluşturma) işlemi için, HTTP GET yöntemi read (okuma) işlemi için kullanılırken, mevcut kaydı güncellemek için HTTP PUT veya PATCH yöntemleri ve kaydı silmek için HTTP DELETE yöntemi kullanılır.
Authentication ve Authorization işlemleri de kullanılabilir. Kullanıcının kimliğinin doğrulanması için genellikle JWT (JSON Web Token) veya OAuth2 (Open Authorization) kullanılır. Kullanıcının belirli bir kaynak veya işlem için yetkisinin olup olmadığını kontrol etmek için Role-Based Authorization veya Policy-Based Authorization kullanılabilir. Bu makale, ASP.NET Core Web API ile veritabanı işlemlerinin avantajlarını ve nasıl yapılacağını anlatarak okuyuculara yardımcı olacaktır.
Veritabanı İşlemleri için Gerekli Kütüphaneler
ASP.NET Core Web API ile veritabanı işlemleri yaparken kullanacağımız kütüphaneler çok önemlidir. Bu sayede veritabanı işlemleri daha kolay ve hızlı hale gelir. En önemli kütüphaneler arasında Entity Framework Core ve Microsoft.EntityFrameworkCore.SqlServer yer alır.
Kütüphane Adı | Açıklama |
---|---|
Entity Framework Core | Veritabanına erişmek ve yönetmek için kullanılan bir ORM (Object-Relational Mapping) aracıdır. Linq sorguları ve Entity Framework Core Migration özellikleri kullanılarak veritabanı işlemleri gerçekleştirilebilir. |
Microsoft.EntityFrameworkCore.SqlServer | Entity Framework Core'un MSSQL Server veritabanı için özelleştirilmiş sürümüdür. |
Entity Framework Core, veritabanına erişmek ve yönetmek için birçok özellik sunar. Code First yaklaşımı ile sınıf yapılandırması kullanarak veritabanı oluşturabilir veya var olan bir veritabanını yeniden kullanabilirsiniz. Ayrıca Migration özelliği ile veritabanı değişikliklerini kolayca gerçekleştirebilirsiniz. Microsoft.EntityFrameworkCore.SqlServer kütüphanesi ise MSSQL Server veritabanı işlemleri için hazırlanmış bir sürümüdür ve bu kütüphane ile MSSQL Server veritabanına kolayca erişebilirsiniz.
Veritabanına Bağlanma
ASP.NET Core Web API kullanarak veritabanı ile iletişim kurmak için öncelikle DataContext sınıfının oluşturulması gerekmektedir. Bu sınıf, veritabanı bağlantısını yönetir ve Entity Framework Core tarafından sağlanan LINQ sorgularını destekler. DataContext sınıfı oluşturulurken DbContext sınıfından kalıtım alınır ve veritabanı ile ilgili ayarlar burada yapılır.
appsettings.json dosyası, uygulamanın ayarlarına ilişkin tüm bilgileri içerir. Bu dosyada, veritabanına bağlantı dizesi ve veritabanı sağlayıcısı bu işlem için kullanılan hangi sürücü niteliğindeki kütüphanenin olduğu gibi bilgiler belirtilir. Veritabanına bağlanmak için, DataContext sınıfından yapıcı metodunda veritabanı bağlantı dizesinin belirtilmesi yeterlidir.
Yukarıdaki adımların başarılı bir şekilde tamamlanması, ASP.NET Core Web API uygulamasının veritabanına bağlanmasını sağlayacaktır. Bu aşamadan sonra, veritabanındaki veriler üzerinde CRUD işlemleri yapmaya başlayabilirsiniz.
Veritabanı İşlemleri
Veritabanı işlemleri, ASP.NET Core Web API'nin en önemli parçalarından biridir. Bu şekilde, veritabanı tablolarına erişmek için CRUD (Create, Read, Update, Delete) işlemleri gerçekleştirilebilir.
Öncelikle, create işlemi ile yeni bir kayıt oluşturulur. Bunun için HTTP POST yöntemi kullanılır ve HTTP Body alanındaki veriler veritabanına kaydedilir. Daha sonra, read işlemi ile var olan kayıtlar okunur. HTTP GET yöntemi kullanılır ve sorgularla filtrelenebilir.
Verilerin güncellenmesi için update işlemi kullanılır. Mevcut kayıt HTTP PUT veya PATCH yöntemleri ile güncellenir ve HTTP Body alanındaki veriler kayda yazdırılır. Son olarak, delete işlemi ile kayıtlar silinir. HTTP DELETE yöntemi kullanılır.
Veritabanı işlemlerinde, Entity Framework Core ve Microsoft.EntityFrameworkCore.SqlServer gibi kütüphaneler kullanılır. Veritabanına bağlanmak için DataContext sınıfının oluşturulması ve appsettings.json dosyasında tanımlama yapılması gerekmektedir.
Create (Oluşturma) İşlemi
Bir kaydı oluşturmak için kullanıcı HTTP POST yöntemini kullanır. Bu işlemde, HTTP Body alanındaki veriler veritabanına kaydedilir. Bu işlemi gerçekleştirmek için veritabanının kullanacağı belirli bir model oluşturulmalıdır. Bu model, Controller sınıfında kullanılacak veritabanı tablosuna karşılık gelir. Örneğin, bir müşteri veritabanı tablosu için bir müşteri modeli oluşturulabilir. Bu model, müşterinin özelliklerini veya alanlarını temsil eder. HTTP POST yöntemi kullanılarak, yeni bir müşteri oluşturulabilir ve bu müşteri modelindeki alanlar HTTP Body alanındaki verilerle doldurulur. Ardından, bu yeni müşteri veritabanına kaydedilir.
Bir örnek vermek gerekirse, bir açık artırma sitesinin veritabanına yeni bir ürün eklemeyi ele alalım. Ürünün adı, açıklaması, kategorisi, fiyatı ve fotoğrafı gibi özellikleri olabilir. HTTP POST yöntemi kullanılarak, kullanıcıdan bu özelliklere ilişkin veriler alınabilir ve ardından veriler Model sınıfındaki özelliklere kaydedilebilir. Sonra, veriler veritabanında yeni bir ürün olarak kaydedilir.
Read (Okuma) İşlemi
Veritabanındaki var olan kayıtları okumak için HTTP GET yöntemi kullanılır. Bu işlem sorgularla filtrelenebilir. Sorgularla, belirli bir kriterlere göre filtreleme yapmak mümkündür. Örneğin, çalışanların maaşları üzerinde filtreleme yaparak belirli bir aralıktaki maaşı olan çalışanları listeleme işlemi gerçekleştirilebilir.
GET metodu kullanılarak, verilen kaynak adresi üzerindeki bilgileri geri döndüren bir istek yapılır. Web API'nin sunduğu özelliklerden biri olan serialization yardımıyla veritabanından okunan güncel bilgileri JSON formatında geri döndürebilirsiniz. Bu sayede, istemciler bu bilgileri işleyebilir ve görselleştirebilir.
Sonuç olarak, okuma işlemi, var olan verileri almak için kullanılır ve sorgularla filtrelenerek daha spesifik sonuçlar döndürülebilir. HTTP GET metodunu kullanarak, veritabanındaki bilgilere Web API üzerinden erişebilir ve istemcilere geri döndürebilirsiniz.
Update (Güncelleme) İşlemi
Veritabanındaki mevcut kaydı değiştirmek veya güncellemek için HTTP PUT veya PATCH yöntemleri kullanılır. Bu işlem, güncellenecek kaydın ID'sinin belirtilmesiyle gerçekleştirilir. HTTP Body alanındaki veriler güncelleme işlemi için kullanılır. Güncellemek istediğimiz alanları HTTP Body alanında belirtmeliyiz. Geri kalan alanlar aynı şekilde veritabanında tutulur. Güncelleme işlemi yapmak, veritabanında boşluklar oluşmasını engeller. Eğer verilen alan önceden boş ise, bu alan güncelleme işlemi sonrasında boş kalacaktır. Eğer bu alanın silinmesini istiyorsak, bu alanı null/boş olarak güncelleyebiliriz.
HTTP PUT işlemi tüm kaydı güncellerken, HTTP PATCH işlemi sadece belirtilen alan(lar)ın güncellenmesi için kullanılır. PUT işlemi, güncellenen verilerin tamamını değiştirirken, PATCH işlemi sadece değiştirilen alanları günceller. Bu işlemde diğer alanların değerleri korunur. Bu nedenle PATCH işlemi, az miktarda değişikliklerde daha kullanışlıdır. Özellikle büyük veri setlerinde, güncelleme işlemleri daha az veri transferi yaptığı için PATCH tercih edilebilir.
Aynı şekilde, güncelleme işlemi sonrasında değiştirilen veya güncellenen veriler, veritabanına kaydedilir.
Delete (Silme) İşlemi
Veritabanından kayıt silmek için HTTP DELETE yöntemi kullanılır. Bu işlem için belirtilen kaydın ID'si kullanılır. Örneğin, bir RESTful Web API'de, kayıt silme işlemi aşağıdaki şekilde yapılabilir:
HTTP Metodu | Endpoint | Açıklama |
---|---|---|
DELETE | /api/products/{id} | Belirtilen ID'ye sahip ürün kaydını siler. |
Bu işlem gerçekleştirilirken, belirtilen ID'ye sahip kayıt veritabanından silinir. Başarılı bir silme işlemi sonrasında, HTTP 204 No Content yanıtı döndürülür.
Ancak, başarısız bir silme işlemi sonrasında, yanıt kodu farklılık gösterir. Örneğin, belirtilen ID'nin yanlış olması durumunda HTTP 404 Not Found yanıtı döndürülebilir. Ya da, belirtilen kaydın silinmesi için gerekli izinlerin olmaması durumunda HTTP 403 Forbidden yanıtı döndürülebilir.
Authentication ve Authorization İşlemleri
Authentication ve Authorization işlemleri, bir Web API uygulamasında kullanıcının güvenliğini sağlamak açısından oldukça önemlidir. Authentication işlemi, kullanıcının kimliğinin doğrulanması ile ilgilidir. Bu işlem, uygulamaya giriş yapmak isteyen kullanıcının kimlik bilgilerinin doğrulanmasını sağlar. Genellikle bu doğrulama işlemi, JWT (JSON Web Token) veya OAuth2 (Open Authorization) kullanılarak gerçekleştirilir.
Authorization işlemi ise kullanıcının belirli bir kaynak veya işlem için yetkisi olup olmadığını kontrol eder. Bir kullanıcının uygulama içinde hangi işlemleri gerçekleştirebileceğini belirleyen bu işlem, uygulamada kullanıcı denetimini sağlamaya yardımcı olur. Bu işlem için Role-Based Authorization veya Policy-Based Authorization gibi teknolojiler kullanılabilir. Bu teknolojiler, kullanıcıların belirli bir rolde veya izin seviyesinde belirli işlemleri gerçekleştirebilmeleri için gerekli koşulları tanımlar ve gerçekleştirir.
Web API uygulamalarında Authentication ve Authorization işlemlerinin doğru bir şekilde gerçekleştirilmesi, uygulamanın güvenliği açısından kritik önem taşımaktadır. Bu nedenle, bu işlemler için doğru teknolojilerin kullanılması ve doğru yapılandırmaların yapılması gerekmektedir.
Authentication İşlemi
Web uygulamalarında, kullanıcıların kimliğinin doğrulanması son derece önemlidir. Authentication işlemi ile kullanıcı kimliği doğrulanır ve güvenli bir şekilde oturum açması sağlanır. ASP.NET Core Web API ile kullanıcı kimliğinin doğrulanması için genellikle JWT (JSON Web Token) veya OAuth2 (Open Authorization) kullanılır.
JWT, web token standardıdır ve kullanıcı kimliğini doğrulamak için kullanılır. JWT, kullanıcının doğru bir şekilde kimlik doğrulaması yapabilmesi için bir token sağlar. Bu token, hem kimliği doğrulamak hem de kullanıcının isteklerini doğrulamak için kullanılır. JWT, JSON yapısında bir token oluşturur ve bu token, kullanıcının kimliğini doğrulanması için kullanılır.
OAuth2 da kullanıcı kimliğini doğrulamak için kullanılan bir protokoldür. OAuth2, yetkilendirme ve kimlik doğrulama protokollerini bir arada sunar. Kullanıcı, uygulamaya erişmek için OAuth2 protokolünü kullanarak bir oturum açabilir. Bu oturum açıldığında, kullanıcının kimliği doğrulanır ve uygulamanın yetkileri alınır. Bu sayede, uygulama kullanıcının yetkileri dahilinde işlem yapabilir.
Authorization İşlemi
Kullanıcının belirli bir kaynak veya işlem için yetkisi olup olmadığını kontrol etmek için Authorization işlemi gerçekleştirilir. Bu işlem kapsamında user authentication yani kullanıcının kimliğinin doğrulanması ile beraber kullanıcının belirli bir kaynak veya işlem için yetkisinin olup olmadığı kontrol edilir.
Role-Based Authorization, kullanıcının rolüne göre yetkilendirme yapar. Örneğin, bir kullanıcının admin olarak belirlenmesi durumunda, admin yetkilerine sahip olur. Bu yetki, işlemleri gerçekleştirirken bazı fonksiyonların engellenmesinden öte, bazı fonksiyonlar için ek yetkilerin verilmesini sağlar.
Policy-Based Authorization, roller yerine belirli politikalara göre yetkilendirme yapar. Belirli kaynaklara veya işlemlere erişim yetkisi tanımlanır. Böylece kullanıcının rolüne bakılmaksızın, doğrudan belirlenen yetkilere veya politikalara göre erişim sağlanır.
ASP.NET Core Web API ile birlikte bu yetkilendirmeler de oldukça kolay bir şekilde yapılabiliyor. Authentication ve Authorization işlemleri için gerekli kütüphaneler ile birlikte yetkilendirme işleri, ASP.NET Core Web API tarafında yapılabilir.