URL Yapısı Oluşturma ve Routing İşlemleri ASP.NET Core MVC'de Nasıl Yapılır?

URL Yapısı Oluşturma ve Routing İşlemleri ASP.NET Core MVC'de Nasıl Yapılır?

Bu makale, ASPNET Core MVC'de URL yapısı oluşturma ve routing işlemleri hakkında geniş bir bilgi vermektedir URL yapısı belirleme işlemi, Route sınıfı kullanılarak gerçekleştirilir ve bu sayede gelen taleplerin doğru bir şekilde yönlendirilmesi sağlanır Routing ise, gelen istekleri hangi Controller ve Action'a yönlendireceğini belirler ve uygulamanın URL yapısını da belirleyerek daha anlaşılır ve SEO dostu URL'ler oluşturulmasına yardımcı olur
Temel routing işlemleri, HTTP yöntemleri ve URL yapısı kullanılarak gerçekleştirilir ve Incoming Request ile eşleşen Route'ların belirlenmesi ile Controller ve Action'ların bulunmasını sağlar Bu işlem sırasında, altı öncelikli özellik kullanılarak Route yapısı oluşturulur ve uygulanır Bu sayede, doğru ve anlaşılır bir URL yapısı oluşturulması, uygulamanın verimliliği ve kullanıcı deneyimi açısından önemlidir
Tüm bu işle

URL Yapısı Oluşturma ve Routing İşlemleri ASP.NET Core MVC'de Nasıl Yapılır?

ASP.NET Core MVC, web uygulamaları geliştirmek için kullanılan açık kaynaklı bir framework'tür. Bu framework, birçok özellik içerir ve bunlardan biri de URL yapısı oluşturma ve routing işlemleridir. Bu makalede, ASP.NET Core MVC'de URL yapısı oluşturma ve yönlendirme (routing) işlemleri hakkında detaylı bilgi verilecektir.

URL yapısı oluşturma işlemi, Route sınıfı yardımıyla gerçekleştirilir. Bu sınıf, URL yapısının nasıl oluşturulacağına dair önemli bilgiler içerir. Örneğin, URL yapısında hangi parametrelerin kullanılacağı, URL'nin nasıl oluşturulacağı ve sunucudan talep edilen kaynakların anlaşılması için gerekli olan anahtar bilgileri içeren sınıflar bütünüdür.

Routing işlemi, ASP.NET Core MVC'de kullanılan middleware'lerden biridir. Bu işlem, bir HTTP isteğinin sunucuya nasıl yönlendirileceğini belirler. Bu sayede, URL yapısı oluşturma işleminden sonra, request daha önce belirlenmiş bir route'a uygunsa, yönlendirmeye göre işlem yapılır. Routing işleminde, HTTP yöntemleri ve URL yapılarına dayanılarak belirli ayarlamalar yapılabilir.

Bu makalenin devamında, temel ve gelişmiş routing işlemleri hakkında detaylı bilgiler de yer almaktadır. Temel routing işlemleri, HTTP yöntemleri ve URL yapılarına dayanırken, gelişmiş routing işlemleri karmaşık senaryolara uyum sağlama amacıyla kullanılır.

Tüm bu işlemler, ASP.NET Core MVC'de kolayca gerçekleştirilebilir. Özellikle, Route sınıfındaki parametrelerin doğru bir şekilde belirlenmesi, URL yapısının güçlü ve kullanışlı olmasını sağlar. Sonuç olarak, bu özellik sayesinde, ASP.NET Core MVC'de geliştirilen web uygulamaları, daha kullanışlı ve daha güvenli hale gelir.


URL Yapısı

ASP.NET Core MVC'de URL yapısı oluşturma işlemi, Route sınıfı ile gerçekleştirilir. URL yapısı, MVC uygulamasında kullanılacak olan URL'lerin kontrol edilmesini ve yönlendirilmesini sağlar.

URL yapısının oluşturulması için, Route sınıfı ile ayarların yapılması gereklidir. Route sınıfını kullanarak gelen taleplere uygun bir kontrolör ve eylem belirtilerek URL yönlendirmesi yapılabilir. Bu sayede gelen taleplerin doğru bir şekilde yönetilmesi ve ilgili sayfaya yönlendirilmesi sağlanır.

URL yapısı oluşturulurken, dikkat edilmesi gereken bazı hususlar vardır. Bunların başında URL'nin anlaşılabilir ve hatırlanabilir bir yapıda olması gelir. Ayrıca, URL yapısının SEO uyumlu olması da önemlidir. Bunun için URL yapısının anahtar kelimeler içermesi ve açıklayıcı bir yapıda olması gerekmektedir.

URL yapısı oluşturulurken, parametrelerin de doğru bir şekilde belirtilmesi gereklidir. Bu sayede, gelen taleplerin yönlendirilmesi daha doğru bir şekilde gerçekleştirilebilir. URL yapısı belirlenirken, URL parametreleri de belirlenir ve bu parametreler sayesinde, gelen taleplerin ilgili sayfaya yönlendirmesi kolaylaşır.

Örnek URL Yapısı
URL Kontrolör Eylem Parametre
https://www.example.com/film/izle/2 Film Izle 2
https://www.example.com/film/yonetmen/5 Film Yonetmen 5

ASP.NET Core MVC'de URL yapısı oluşturma işlemi oldukça basit ve esnektir. Route sınıfı ile kolaylıkla URL yapısını oluşturabilir, parametreleri belirleyebilir ve gelen talepleri ilgili sayfalara yönlendirebilirsiniz.


Routing İşlemleri

=

ASP.NET Core MVC'de kullanılan middleware'lerden biri olan routing, gelen istekleri hangi kontrolöre veya eyleme yönlendireceğini belirleyen işlemdir. Bu işlem, HTTP isteklerindeki URL'lerdeki parametreleri kontrol ederek gerçekleştirilir. Routing işlemi, uygulamanın URL yapısını da belirleyerek kullanıcılar için daha anlaşılır ve SEO dostu URL'ler oluşturulmasına yardımcı olur.

Routing işleminin nasıl yapıldığı ve hangi ayarların yapılabileceği konuları oldukça önemlidir. ASP.NET Core MVC'de, routing işlemini gerçekleştirmek için Startup.cs dosyası içerisinde ConfigureServices() ve Configure() metodları kullanılır. ConfigureServices() metodunda, routing yapısını belirlemek için özelleştirilmiş bir yöntem kullanılabilir. Configure() metodunda ise, uygulamanın URL routing ayarları belirtilir. Bu ayarlar içerisinde, varsayılan route yapısı dışında farklı özelleştirmeler yapılabilir.

Routing işlemi sırasında, URL yapısı parametreleri kontrol edilir ve bu parametreler kontroler ve eylemlere yönlendirildiğinde, gerekli işlemler gerçekleştirilerek ilgili sayfa veya veriler kullanıcılara sunulur. Bu nedenle, doğru ve anlaşılır bir URL yapısı oluşturulması, uygulamanın verimliliği ve kullanıcı deneyimi açısından oldukça önemlidir.


Temel Routing İşlemleri

ASP.NET Core MVC, HTTP yöntemlerini (GET, POST, PUT vb.) ve URL yapısını kullanarak temel yönlendirme işlemlerini gerçekleştirir. Bu işlemler, Incoming Request (Gelen İstek) ile eşleşen Route'ların belirlenerek, Controller ve Action'ların bulunmasını sağlar.

Her bir istek için Route'lar, parametrelerin Controller ve Action'lara aktarılmasını sağlar. Route'lar, altı öncelikli özellikle eşleştirilebilir: HTTP yöntemi, Host, Path, Query, Header ve Custom. Bu özelliklere göre, Route yapısı oluşturulur ve uygulanır.

Örneğin, gelen istekte "www.example.com/Home/Index" URL yapısı varsa, "/Home/Index" kısmı Controller ve Action olarak ayrıştırılır. Bu sayede, Hangi Controller ve Hangi Action'a istek geldiği belirlenir ve o isteğe uygun yanıt hazırlanarak geri döndürülür.

Aşağıdaki örnekte basit bir Route yapısı inşa edilmiştir:

Route Controller Action
Home/Index HomeController Index

Bu örnek, "/Home/Index" URL yapısına gelen isteği, Home Controller'ındaki Index Action'ı ile eşleştirir. Böylece, istek doğru Controller ve Action'da işlenir ve yanıt olarak geri döndürülür.

HTTP yöntemi, isteğin tipine göre Route yapısını belirler. GET yöntemi, kaynak okuması gerektiği zaman kullanılırken, POST yöntemi, kaynak güncellemesi gerektiğinde kullanılır. Ayrıca PUT, DELETE, HEAD, OPTIONS vs. gibi yöntemler de kullanılır.

  • GET: Sadece veri almak için kullanılır.
  • POST: Veri almak ve göndermek için kullanılır.
  • PUT: Var olan bir kaynağı güncellemek için kullanılır.
  • DELETE: Var olan bir kaynağı silmek için kullanılır.

Temel routing işlemlerinde, URL yapısı belirleyici bir özelliktir. URL yapısı, istenen kaynağı belirlemekte oldukça önemli bir role sahiptir. Bu nedenle, URL yapısının doğru bir şekilde oluşturulması, yönlendirme işleminin doğru yapılandırılması için gereklidir.


HTTP Yöntemleri

HTTP protokolü, istemci-sunucu modeline dayanmaktadır ve istemciler, sunucudan belirli işlemler yapmak için istekte bulunurlar. Bu işlemler, HTTP yöntemleri (HTTP methods) olarak bilinir. İstemciler, HTTP istek yöntemlerini kullanarak sunucuya bir talepte bulunurlar ve sunucu da bu talebi karşılamak üzere bir HTTP yanıt yöntemi kullanır.

En yaygın kullanılan HTTP yöntemleri şunlardır:

  • GET: Sunucudan kaynakları (web sayfaları, resimler, vb.) alma işlemi için kullanılır. GET isteği, sunucunun kaynakları istemciye göndermesini istemeniz anlamına gelir.
  • POST: Sunucuya yeni bilgiler eklemek, güncellemek veya silmek için kullanılır. Bu istek, form verileri, yüklenen dosyalar veya JSON nesneleri gibi veriyi sunucuya göndermek için kullanılabilir.
  • PUT: Sunucuda bulunan bir kaynağı güncellemek için kullanılır. Bu istek, güncellenecek kaynağı belirtmek üzere bir URI ve güncellenmiş veri içeren bir gövde (body) içerir.
  • DELETE: Sunucuda bulunan bir kaynağı silmek için kullanılır. Bu istek, silinecek kaynağı belirtmek üzere bir URI içerir.
  • HEAD: GET isteği gibi davranır, ancak sunucu yanıtında sadece gövdesiz bir yanıt dondurur. Bu istek, bir kaynağın var olup olmadığını doğrulama gibi durumlarda kullanılabilir.
  • OPTIONS: Sunucunun, bir kaynağı hangi HTTP yöntemleriyle desteklediğini sorgulamak için kullanılır.

HTTP yöntemleri, web uygulamalarında veri alışverişinin temelini oluşturur. Bu nedenle, bir web uygulaması geliştirirken, doğru HTTP yöntemlerini kullanmak ve uygun şekilde uygulamak çok önemlidir.


URL Yapıları

URL yapısı, web uygulamalarında sunucudan talep edilen kaynakların belirtilmesinde kullanılan yapıdır. ASP.NET Core MVC'de de URL yapısı oluşturmak oldukça kolaydır. URL yapısını oluştururken, route sabiti ve parametreleri kullanırız.

Örnek olarak, "/Kitaplar/Detay/5" şeklinde bir URL yapısını ele alalım. Burada "Kitaplar" controller'ı, "Detay" action'ı ve "5" parametresi bulunmaktadır. Bu URL yapısını oluştururken, işlem sırası şu şekildedir:

  • Kitaplar controller'ına yönlendirilir
  • Detay action'ı çağırılır
  • 5 parametresi action'a aktarılır

URL yapısı oluşturulurken, route sabiti ve parametreler arasında eşleşme yapılır ve bu eşleşmeye göre ilgili controller ve action çalıştırılır. Örnekte kullanılan route sabiti "Kitaplar" olduğu için istek bu controller'a yönlendirilir. Daha sonra, route parametreleri olan "Detay" ve "5" değerleri için eşleşme yapılarak ilgili action çağırılır.

ASP.NET Core MVC'de route sabiti ve parametreleri kullanarak dinamik URL yapısı oluşturmak oldukça kolaydır. Route ayarlarını yapan bir yapı oluşturarak, bu ayarları değiştirerek URL yapısını güncelleyebilir veya yeni bir URL yapısı oluşturabilirsiniz. Böylece, web uygulamanızın SEO dostu ve kullanıcı deneyimi açısından da daha iyi bir yapıya sahip olmasını sağlayabilirsiniz.

URL yapısı oluştururken kullanılan parametrelerin doğruluğunu kontrol etmek için, ASP.NET Core MVC'de route constraintleri kullanabilirsiniz. Route constraintleri kullanarak, route parametrelerine spesifik bir formatta veri girilmesini zorunlu hale getirebilirsiniz. Bu sayede, URL yapısı oluştururken hataların önüne geçebilirsiniz.


Gelişmiş Routing İşlemleri

=

Gelişmiş routing işlemleri, temel routing işlemlerinden farklı olarak daha karmaşık senaryolara uyum sağlama amacıyla kullanılır. Örneğin, bir URL yapısında çok sayıda parametrenin kullanılması durumunda, gelişmiş routing işlemleri kullanılarak bu parametrelerin nasıl yönlendirileceği belirlenebilir.

Gelişmiş routing işlemlerinde, HTTP yöntemleri ve URL yapıları daha kompleks hale getirilebilir. Bu sayede, birden fazla parametre kullanarak istenilen sonucu elde etmek mümkün hale gelir. Örneğin, URL yapısı içerisinde kullanılacak parametreler arasında bağlantılar kurularak, belirli bir sıraya göre işlem yapılabilir.

Gelişmiş routing işlemlerinde ayrıca, kullanıcılara yönlendirme konusunda daha fazla esneklik sağlanabilir. Örneğin, bir URL yapısında küçük bir değişiklik yaparak farklı bir sayfaya yönlendirmek mümkündür. Bu sayede, kullanıcılar belirli bir sayfadan çıkarken, daha uygun bir sayfaya yönlendirilebilirler.

Gelişmiş routing işlemlerinde, birden fazla HTTP yöntemi kullanılarak belirli senaryolara uygun bir yönlendirme işlemi yapılabilir. Örneğin, bir sayfada kullanıcılardan belirli verilerin girilmesi istenebilir ve bu verilerin farklı HTTP yöntemleri kullanılarak işlenmesi sağlanabilir.

Özetle, gelişmiş routing işlemleri, temel routing işlemlerinin özelliklerini daha da geliştirerek, daha karmaşık senaryolara uyum sağlamaya yöneliktir. Bu sayede, URL yapısını doğru bir şekilde kullanarak kullanıcıları uygun sayfalara yönlendirmek mümkün hale gelir.


Route Ayarları

Route ayarları, ASP.NET Core MVC'de kullanılan routing işleminin nasıl yapılandırıldığını belirler. Bu ayarlar, Ad, Şema, Host ve Bağlama Noktası (Port) gibi değişkenler içerir.

Ad, URL'nin belirli bir alan adı için kullanılır. Şema, HTTP veya HTTPS gibi belirli bir protokolü belirtir. Host, URL'nin hangi sunucuda çalışacağını belirler. Bağlama Noktası, URL'nin hangi port kullanacak olduğunu belirler.

Bunların yanı sıra, {controller} ve {action} gibi özel parametreler de kullanılarak URL yapısı daha da esnek hale getirilebilir. {controller}, belirli bir kontrolörü işaret ederken, {action} belirli bir eylemi işaret eder. Bu parametreler, URL yapısı için önemli bir flexibilit sağlar ve routing işlemini daha da kontrol edilebilir hale getirir.

Ayrıca, benzer durumlarda birden fazla routing ayarları oluşturulması gerekebilir. Bu durumda, bu ayarların öncelik sırası önemlidir. Öncelikle çalışması gereken route ayarları RouteData özelliği kullanılarak öncelikli olarak belirtilebilir.

Route ayarları özellikle birden fazla aksiyon yöntemi veya farklı URL yapısı ihtiva eden web uygulamalarında önemlidir. Bu sayede URL yapısı daha spesifik bir şekilde tasarlanarak, kullanıcıya daha uygun bir deneyim sunulabilir.


Route Constraintleri

Route constraintleri, routing işleminde URL yapısını daha spesifik bir şekilde ayarlamak için kullanılır. Route constraintleri sayesinde, URL yapısı için belirtilen değerlerin nasıl sınırlandırılacağı belirlenebilir. Örneğin, route constraintleri sayesinde bir URL yapısı sadece sayısal değerler içerebilir.

Route constraintleri, RouteBuilder nesnesi üzerinden belirtilir ve constraints anahtar kelimesi ile tanımlanır. constraints anahtar kelimesinin değeri, bir dictionary'dir ve her bir constraint için bir key-value pair'i içerir.

KeywordConstraintExample
intSadece tamsayı değerleri kabul eder{id:int}
floatSadece ondalık sayı değerlerini kabul eder{x:float}
boolSadece boolean değerlerini kabul eder{isTrue:bool}
guidSadece GUID değerlerini kabul eder{id:guid}
lengthVerilen bir değer üzerinden sınırlandırır{name:length(5)}
maxMaksimum değeri sınırlandırır{id:max(10)}
minMinimum değeri sınırlandırır{id:min(5)}
rangeVerilen bir aralıkta değerleri sınırlandırır{age:range(18,60)}
regexBir regular expression ile sınırlandırır{name:regex(^([a-zA-Z0-9]{5,10})$)}

Yukarıdaki tabloda sık kullanılan constraint keywordleri ve kullanımları verilmiştir. URL yapısı içindeki her bir parametre için bir constraint belirtilmelidir. Constraintler birden fazla parametre üzerinde de kullanılabilir.

Örneğin, "/product/{id:int}/{name:regex(^([a-zA-Z0-9 ]+)$)}" şeklinde bir URL yapısı, "id" parametresinin sadece tamsayı değeri, "name" parametresinin ise sadece harf ve rakam içeren boşluklu bir string değerini kabul etmesini sağlar.


Özet

Bu makalede, ASP.NET Core MVC'de URL yapısı oluşturma ve routing işlemleri hakkında detaylı bilgi verilmiştir. URL yapısı oluşturma işlemi, Route sınıfı yardımıyla gerçekleştirilirken, routing işlemi kullanılan middleware'lerden biridir. Temel routing işlemleri HTTP yöntemleri ve URL yapısı temel alınarak yapılırken, gelişmiş routing işlemleri daha karmaşık senaryolara uyum sağlamak için kullanılır. Makalede, HTTP yöntemleri ve URL yapısı oluşturma işlemi detaylı bir şekilde ele alınmıştır. Ayrıca, route ayarları ve constraintleri hakkında önemli bilgiler de paylaşılmıştır.