Swashbuckle, Web API ve Swagger (OpenAPI) Tanımı

Giriş

Hayatınızda hiç ASP.NET Web API projesi yaptınız mı? Yaptıysanız eğer en azından bir kere bu API’ı kullanacak istemci (client) için de bir kütüphane yazmışsınızdır. Sonrasında ya bunun daha iyi bir yolu olması lazım diye kendi kendinize düşünmüşsünüzdür ya da Swashbuckle’ı duymuşsunuzdur.

Swagger ve Swashbuckle

Swashbuckle’ın ne yaptığını sorarsak, kendisinin Swagger tanımı oluşturan bir kütüphane olduğunu söyleyebiliriz. Tabii öncesinde Swagger ve tanımının ne olduğunu bilmemiz gerekiyor.

Swagger, bir API’ın bütün hayat döngüsü içerisinde kullanılabilecek araçları kapsamaya çalışan bir kütüphanedir. Spesifikasyonun adı 3.0 versiyonu ile birlikte OpenAPI olarak değiştirildi ve artık ekosistemde bir standart oldu.

Swagger tanımı aslında API’ınızın içerisinde hangi uçnoktaların (endpoint) olduğunu, o endpointlerden alınabilecek cevapların neler olduğunu ve cevabın bir modeli varsa bu modelin ne olacağını belirten bir döküman. Bu döküman ve Swagger içerisinde bulunan araçlar sayesinde, API tanımına uygun bir sunucu (server) ve ya istemci oluşturulabiliyor. Aynı zamanda bu araçların içerisinde size bu API’a istek yapabilmenizi sağlayan bir kullanıcı arayüzü de var.

Swashbuckle ise sizin oluşturduğunuz ASP.NET Web API projesi içerisinde olan Controller sınıfları üzerinden bu Swagger tanımını oluşturabiliyor. Aynı zamanda API’ınızı kullanabileceğiniz Swagger UI arayüzünü de ekleyebiliyor. Böylece siz yazdığınız server tarafındaki endpointleri kullanabilecek client projesini Swagger tanımı aracılığıyla otomatik olarak oluşturabiliyorsunuz. Swagger Editor size bu konuda yardımcı olacaktır.

Kodu Görelim

Bu örnekte, herhangi bir yerden veri çekme ile uğraşmayalım diye bir kategori listesi üreteceğiz ve bu kategorilere Id özellikleri ile birlikte tekil olarak erişebileceğiz.

Öncelikle boş bir Web API projesi oluşturuyoruz.

 

Proje içerisine, NuGet içerisinden Swashbuckle’ı bulup referans ediyoruz.

Models klasörünün içerisine aşağıdaki “Category” sınıfını ekliyoruz.

https://gist.github.com/fatihdgn/0f19875969487b341a5517547b6350c0

Sonrasında ise Providers adında bir klasör oluşturuyoruz ve içerisine aşağıdaki “CategoryProvider” sınıfını ekliyoruz. Bu sınıf ile birlikte, uygulama başlatıldığında random üretilmiş beş adet kategoriye sahip olacağız.

https://gist.github.com/fatihdgn/f5e9b5b26d0363829632ff49d9a8bad6

Son adım olarak Controllers klasörünün içerisine “CategoryController” ekliyoruz.

https://gist.github.com/fatihdgn/94f8bfd157aa07193e02a95d696a4b3d

Sonuç olarak aşağıdaki ekran görüntüsüne benzer bir ekran elde etmiş olmanız gerek.

Ve web projenizi başlatın. /swagger adresine gittiğinizde Swagger UI paneli ile karşılaşacaksınız.

Üst menüde, API’ınızın Swagger dökümanına ulaşabileceğiniz bir adres bulunuyor. Bu döküman sayesinde uygulamanıza istek yapabileceğiniz bir istemci oluşturabilirsiniz.
Aynı zamanda aşağıda, biraz önce eklediğimiz “CategoryController” içerisindeki iki endpoint bulunuyor. Arkada oluşturduğumuz kategori listesini almak için, “/api/Category” üzerine tıklayıp, aşağıda beliren “Try it out!” butonuna tıklayın.

Bunun sonucunda, hemen aşağıda kategorilerinizin bir listesini görebilirsiniz.

Arasından herhangi birinin Id özelliğini kopyalayıp, “/api/Category/{id}” tabında aynı adımları izleyerek, spesifik bir kategoriyi getirme isteğini de yapabilirsiniz.

Bugün, Swashbuckle ve Swagger’ı tanımladık, inceledik. Umarım keyifli ve öğretici bir yazı olmuştur. Bir sonraki yazıda görüşmek üzere.

SharePoint Framework (SpFx) İçerisinde jQuery Kullanımı

SharePoint Framework kullanarak geliştirme yaparken UI ve Http istekleri için kullanabileceğiniz birçok seçeneğe sahipsiniz. Popüler JavaScript Framework’lerinden bazılarının isimlerinden bahsetmek gerekirse Angular, React, Vue.js, Knockout başta gelebilir. Bunun yanında dilerseniz JavaScript kütüphanesi olarak jQuery de kullanabilirsiniz. Basit WebPartlar geliştirmek için Pure JavaScript’te iyi bir seçenek olarak köşede durabilir.

Kodun bakımı, yönetilebilir olması, devamlılığın sağlanması, birlikte geliştirilebilirlik ve UI’daki kompleksliğe göre en uygun framework’ü veya kütüphaneyi seçmek elbette size kalıyor. Ben bu yazımda SharePoint Framework ile birlikte jQuery nasıl kullanılabilir bundan bahsedeceğim. Sharepoint Framework ile jQuery‘yi seçme sebebim hem çokça geliştiricinin jQuery’e hâkim olması hem de topluluklar ve doküman anlamında iyi bir kaynağa sahip olması. Bunun yanında ek olarak ihtiyacım olan tüm taleplere cevap verebilir düzeyde olması yeterli bir sebep olacaktır diye düşünüyorum.

Önceki yazılarımda çokça bir proje için SharePoint Framework ile kurulumun nasıl yapıldığını çokça anlattım. Bu nedenle artık kurulum aşamasını geçiyorum ve kurulu bir ortama sahip olduğunuzu varsayıyorum.

Öncelikle “npm install –save jquery@2″ komutunu çalıştırarak projemiz içerisine kütüphaneyi indirelim.

Daha sonra “npm install –save @types/jquery@2” komutunu çalıştırarak jQuery Typinglerini de projemiz içerisine eklemiş olalım. Typingler sayesinde geliştirme yaparken çok güçlü bir intellisense (otomatik tamamlama) desteği alabiliriz.

SharePoint Framework kurulumuna nazaran bu kütüphaneler boyutları küçük olması nedeniyle yüklenme aşamasında çok fazla vakit almayacaktır.

WebPart ile ilgili işlemlerimizi tamamlayıp ilgili projeyi SharePoint online içerisinde deploy ederken scriptleri bundle ettiğimizde bu paket içerisinde jQuery’nin de olması gerekiyor. Bu nedenle configconfig.json dosyayı içerisine aşağıdaki tanımlamayı yapalım.

“externals”: {

“jquery”:”node_modules/jquery/dist/jquery.min.js”

}

sharepoint config dosyası

Projemizi geliştirdiğimiz .ts uzantılı dosyamızda, en yukarıda kütüphaneleri çağırdığımız namespace alanında aşağıdaki tek satırlık kodla jQuery’i hangi alias (takma isim) ile kullanacağımız da belirttikten sonra proje içerisinde jQuery’nin tüm yeteneklerinden faydalanabiliriz. Burada “as” direktifinden sonra kullanacağınız isimlendirme ile tüm class içerisinde sağlayacağınız erişim anahtar kelimesini belirttiğinizi de bildirmek isterim.

import * as jQuery from
‘jquery’;

Bir örnek vermek gerekirse, DOM içerisinde bir objeye en kolay aşağıdaki satırları kullanarak ulaşabilirsiniz.

örnek demo

Bir sonraki yazımızda görüşmek üzere.

Excel Veri Doğrulama (Data Validation)

Bu yazımızda özellikle Excel Eğitimlerimizde detaylıca anlattığımız önemli bir konu olan Excel Veri Doğrulama (Data Validation) Metodları hakkında bilgi vermeye çalışacağız.

Excel’de Veri Doğrulama ile kullanıcıların bir sayfada sadece istenilen hücre aralıklarına sizin koyduğunuz kısıtlamalar dahilinde veri girişi yapmasını sağlayabilirsiniz. Bu özellik ile izin verilmeyen hücre aralıklarına veri girişi yapılmasını engellemiş olursunuz. Veri Doğrulama ile hücreye Tamsayı, Ondalıklı Sayı, Liste, Metin Uzunluğu, Tarih, Saat türlerinden birini kullanabileceğiniz gibi özel bir durumda Formül yazarak da Özel veri doğrulama ölçütleri tanımlayabilirsiniz.

Veri Doğrulama’yı kullandığınızda kullanıcı kural koyulmuş hücrelerden birine tıkladığında bir uyarı mesajı göstererek kullanıcıya hücreye gireceği aralık ve veri türü hakkında bilgi verebilirsiniz. Eğer kullanıcı sizin koyduğunuz kurallar dışında bir değer girdi ise hata mesajı göstererek girilen değerlerin geçersiz olduğunu gösterebilirsiniz.

Veri Doğrulama özelliğine Veri Sekmesi > Veri Araçları gurubunda ulaşabilirsiniz.

Veri Doğrulamanın yanındaki oku tıkladığımızda açılan listeden tekrar Veri Doğrulama seçeneğini seçiyoruz. Ayrıca bu listeden veri doğrulama kuralı oluşturduğumuzda geçersiz olan verileri daire içine alınmasını sağlayan (Geçersiz Veriyi Daire İçine Al) özelliğimizi de kullanabiliriz.

Veri Doğrulama seçeneğini tıkladığımızda aşağıda görülen ayarlarımızı yapacağımız Veri Doğrulama penceresi açılır.

Yukardaki pencere ilk açıldığında İzin Verilen kısmında Herhangi Bir Değer yazan bu ifade sizin Excel hücrelerine istediğiniz her veriyi kısıtlama olmaksızın giriş yapabileceğiniz anlamına gelir.

Bir senaryo üzerinden özelliğimizin uygulamasını yapalım.

Örneğin bir Excel Sayfasında A1:A5 aralığına sadece 18 ile 50 arasıda tamsayı tipinde bir değer girişi yapmak istiyoruz. Kullanıcı bu aralıktan herhangi bir hücreye tıkladığında bir uyarı iletisi göstererek hangi değerleri girebileceği hakkında bir mesaj gösterilmesini sağlayacağız. Eğer kullanıcı izin verilen aralık veya tür dışında bir değer girişi yaparsa Hata Uyarısı göstereceğiz ve duruma göre ya hiç giriş yapamamasını veya bir uyarı gösterip yinede devam et şeklinde bir şeçenek sunarak giriş yaptırabiliriz.

Aşağıdaki pencerede İzin Verilen kısmında Tamsayıyı seçiyoruz ve 18 ile 50 arası bir sayıya izin verecek dediğimiz için Veri kısmına arasında olarak şeçiyoruz en az ve en çok kısımlarına sırayla 18 ve 50 değerlerini giriyoruz. Böylece kuralımızı koymuş olduk bu kadar yapmamız yeterlidir. İstersek Girdi iletisi ve Hata Uyarısı ayarlarınıda yapabiliriz eğer yapmaz isek sistemin varsayılan ayarı geçerli olur.

Şimdide Girdi İletisini hazırlayalım. Bunun için Girdi İletisi sekmesine tıklıyoruz ve aşağıda solda bulunan ekran geliyor. Bu ekranda Başlık kısmına “Lütfen okuyunuz” tarzında bir ileti Girdi iletisi kısmına da detaylı bir mesaj yazabilirsiniz.

Ve son olarak “Hata” Uyarısı ayarını yapalım. Amacımız sadece 18-50 arasında bir değer girişi yapıldı ise izin verilecek aksi durumda kesinlikle giriş yapılmasın şeklinde bir ayar yapacağız Stil kısmında Durma ifadesini seçersek kesinlikle giriş yapamaz ama Uyarı veya Bilgi ifadelerini seçersek önce bir uyarı alır Devam et seçeneğini seçersek giriş yapılır. Başlık kısmında Hata oluştu, Hata İletisi kısmında da Girdiğiniz değer geçerli değildir uyarısını verdirebiliriz.

Yukardaki tüm ayarları yaptıktan sonra kullanıcı veri girdiğinde aşağıdaki gibi bir görüntüyle karşılaşır. Eğer girilen değerler şartları sağlıyor ise bir sorun oluşmaz.

Ama girilen değerler geçersiz olursa seçtiğiniz Stil’e göre ki biz Durma Stilini seçtik hiçbir şekilde o değeri giremeyiz ve aşağıdaki gibi bir hata penceresi açılır.

Eğer Stil olarak Uyarı seçilirse aşağıdaki gibi bir mesaj çıkar.

Yukardaki bu mesajda Evet’i tıklarsak değer girişi kabul edilir. Diyelim ki tüm girişler yapıldı ama bizim kural koyarken sınırladığımız alanlar dışında da veriler girilmiş bunlar hangileridir tespit etmek istersek Geçersiz Veriyi Daire İçine Al seçeneğini seçiyoruz.

Ve bu işlem sonunda geçersiz olan veriler kırmızı daire içine otomatik alınır. Bu kırmızı daireleri temizlemek istersek Doğrulama Dairelerini Temizle seçeneğini seçeriz.

Yukarıda anlatılan süreç diğer veri türleri olan Ondalıklı Sayı, Metin Uzunluğu, Tarih, Saat türleri içinde aynı şekildedir.

Veri Doğrulama ile Açılır Listeler Yapmak

Açılır liste bir hücreye tıkladığımızda seçeneklerin gelmesidir. Bu özellik de bir Veri Doğrulama kuralıdır. Bir örnek ile konuyu anlatalım.

A1 hücresine tıkladığımızda açılır listeden departman bilgileri olan Finans, Muhasebe, Satış alanlarını seçebileceğimiz bir liste oluşturalım bunun için Veri Doğrulama penceresini açtıktan sonra Liste’yi seçip bilgileri arasında noktalı virgül olacak şekilde giriyoruz.

Yukardaki ayarı yaptığımızda A1 hücresinde aşağıdaki gibi açılır listeden seçim yapabiliriz.

Formül ile Veri Doğrulama Kuralı Oluşturmak

Veri Doğrulamada formül kullanmak bize sunulan var olan özellikler ile işin içinden çıkamayacağımız durumlarda kullanılır. Bu formülleri yazarken özellikle durumların sağlanıp sağlanmamasına göre bir formül yapısı kurarız ve bu formüllerin sonuç itibari ile Doğru veya Yanlış ifadelerini oluşturmaları gerekir.

Bir örnek ile konuyu anlatalım. Örnek: A1 hücresine girilecek metin C karakteri ile başlıyor ise hücreye giriş yapılabilir olsun aksi taktirde hiçbir şekilde giriş yapılmayacak.

Bunun için A1 hücresini seçtikten sonra Veri Doğrulama penceresini açıyoruz ve Özel’i seçtikten sonra Formül kısmına =Soldan(A1;1)=”C” formülünü yazıyoruz.

Tamam düğmesini tıkladıktan sonra A1 hücresine sadece C karakteri ile başlayan bir kelime girdiğimizde giriş yapılacak diğer durumlarda giriş yapılamayacak kuralı koymuş oluruz.

Aşağıdaki resimde görüldüğü gibi A1 hücresine Ali yazdığımızda hata alıyoruz çünkü C karakteri ile başlamıyor. (Varsayılan hata uyarısı)

Fakat A1 hücresine C karakteri ile başlayan Cihan ifadesini yazdığımızda herhangi bir sorunla karşılaşmıyoruz.

Böylelikle Veri Doğrulama yöntemleri ile hücreler içerisine rapor ya da hesaplamalar için doğru verilerin girilmesini kesin olarak sağlayabiliriz.

Başka bir yazıda görüşmek dileğiyle.

Metni Sütunlara Dönüştür (Text To Columns)

Excel’in en yararlı ve pratik özelliklerinden biride şüphesiz Metni Sütunlara Dönüştür sihirbazıdır. Bu yazımızda bu özelliğin detaylarını irdeleyeceğiz.

Çok işlevsel bir özellik olmasından dolayı İleri Excel eğitimlerimizde 7-8 farklı çözüm yöntemini uygulamaları ile gösterip anlattığımız bu konunun birkaç özelliğini aşağıdaki makalemizde bulabilirsiniz.

Bu özellik ile tek sütunda olan verileri farklı sütunlara ayrıştırabiliriz. Özelliğimiz bir nevi veri birleştirme işleminin tersidir aslında. Kullanımı oldukça kolay olan bu özellik ile verileri ayrıştırırken iki durum söz konusudur.

  1. Sınırlandırılmış Veriler
  2. Sabit Genişlikli Veriler

Sınırlandırılmış veri herhangi bir karakter ile ayrılan verilere denir. Örneğin Adı Soyadı yazılırken arada kullanılan boşluk karakteri bir sınırlandırma karakteridir.

Sabit Genişlikli veri ise metin uzunluğu anlamında eşit ve sınırlandırılmış veriye göre düzenli verilerdir. Örneğin Telefon numarası, Vergi numarası gibi.

Metni Sütunlara Dönüştür özelliği bir sihirbaz olduğu için 3 adımda bitecek bir işlemdir. Özelliğimiz ile ilgili farklı örnekler üzerinden konumuzu anlatalım.

Örnek 1:

Aşağıdaki tabloda amacımız tek sütunda verilen Adı Soyadı bilgilerinden Adı kısmının B sütununa Soyadı kısmının ise C sütununa gelmesini istiyoruz.

Yukardaki tabloda öncelikle A sütunu taratıyoruz ve Veri Sekmesinin Veri Araçları grubunda Metni Sütunlara Dönüştür özelliğine tıklıyoruz.

Daha sonra aşağıdaki pencere açılacaktır.

Tarattığımız A sütunundaki veri, Adı Soyadı bilgilerinden oluşan bir veridir ve boşluk karakteri ile ayrılmıştır haliyle bir sınırlandırma olduğu için Sınırlandırılmış seçeneği ile devam edip İleri düğmesini tıklıyoruz ve aşağıdaki ekranımız geliyor.

Yukarıdaki adıma geldiğimizde verilerin hangi ayırıcı karakter(ler) ile ayrıldığını seçiyoruz. Bu kısımda birden fazla seçeneği işaretleyebiliriz veya burada olmayan bir karakter ise Diğer kısmına o karakteri yazabiliriz örneğin “/” karakteri gibi. Aynı zamanda Veri Önizleme kısmından yaptıklarımızın sonuçlarını anlık görebiliyoruz. İleri demeden önce bu kısmı incelemenizi tavsiye ederim. Yukarıdaki işlem için Boşluk kutucuğunu seçip İleri diyoruz ve aşağıdaki son adımımız olan 3. Adım geliyor.

Bu adımda son diyerek direkt işlemi bitirebiliriz ama buradada bazı şeyleri bilmeniz faydanıza olacaktır. Öncelikle Sütun veri biçiminde Genel seçeneği seçili bu ayar Excel’in standart hücre formatıdır ve son deyip işlemi bitirdiğimizde Excel de bu kısım Genel olarak gözükecektir. Eğer Metini seçersek Excel hücresinde formatı Metin olacaktır.Tarih seçeneği ise Tarih bilgisi olan sütünun Excele hangi formatta yansıyacağıdır. (GAY=Gün Ay Yıl formatı gibi.) Eğer Sutunu içeri aktarma seçeneğini seçerseniz bu sutunu Excel’e yazmadan atlayacaktır.

Hedef kısmında ise ayrıştırmanın hangi hücreden itibaren yapılacağını gösterir. Biz burada herhangi bir hedef göstermez isek yanındaki dolu hücreleri ezer o yüzden kaç sutuna ayrılacağını önizleme kısmında gördüğümüzde ona göre boş sutun açmalıyız veya başka bir hedef hücre göstermeliyiz.

Gelişmiş kısmı ise sayısal verileri Excel’e yazarken ondalık ve binlik ayraçlarını ayarlamak içindir. Örneğin Türkiye’de sayılar yazılırken ondalık ayırcaç virgül, binlik ayıraç ise noktadır ama Amerika da ise bu durum tam tersidir. Önemli bir durumdur dikkat edilmezse sayısal değerlerde hata olabilir.

Son düğmesine tıkladığımızda Hedef kısmına B1 hücresini seçtiğimiz için ayrıştırma işlemi B sütununda Ad’lar C sütununda da Soyad’lar olacak şekilde aşağıdaki gibi ayrıştırılır.

Örnek 2: Tarihleri Düzenlemek

Tek sütunda geçersiz bir formatta yazılan tarihleri arasında Nokta(.) olacak şekilde düzenleyelim.

İlk etapta veriyi taratıp Metni sütunlara Dönüştür Özelliğimize tıklıyoruz.

İlk adımda hiçbir şey yapmadan İleri diyoruz.

2. Adımda da hiçbir şey yapmıyoruz ve İleri diyoruz.

3. Adımda Sütun veri biçimi kısmında Tarih’i seçiyoruz ve bilgilerin YılAyGün formatında olduğunu anlaması için “YAG” kalıbını seçiyoruz ve Hedef kısmında B1 hücresine tıklıyoruz.

Son düğmesine tıkladığımızda aşağıdaki şekilde Tarih alanındaki bilgilerimizi düzenlemiş oluyoruz.

Başka bir makalede görüşmek üzere hoşçakalın.