GraphQL ve .NET Core'un Güçlü İkilisi: Hot Chocolate ile Hızlı ve Etkili API Geliştirme - Turkish #1
Selam herkese,
Bugün size günümüz en yaygın teknoloji mimarisi olan API yaklaşımına bir bakış açısı kazandırmak istiyorum.
Pekii, ben size SOAP desem tepkiniz ne olur? Kaçınız şuan onu hatırlayacak ve bir zamanların en önemli iletişim yaklaşımı olan bu protocol teknolojisini ne kadar hızlı unuttuğumuz konusunda bana katılacak?
SOAP(Simple Object Access Protocol), XML'e altın çağını yaşatan bu iletişim protokolü istemci ihtiyaçlarını karşılamak için HTTP üzerinden dağıtık sistemler arasında güvenlik protokollerinide kullanabilen, dil bağımsız, geniş bir kütüphanesi olmasına rağmen hızla unutulmadı mı?
Onun unutulmasını hızlandıran ise daha esnek bir çalışma oratamı sunan REST(Representational State Transfer) oldu.
REST API ler, SOAP gibi HTTP protokollerini kullansa da XML gibi standart veri biçimine yeni bir biçim ekledi, JSON(Javascript Object Notation). JSON daha basit, daha okunaklı ve az karmaşıktır. Veri tasarrufu açısından JSON daha tasarrufludur ve kompakt olması sebebiyle daha az yer kaplar, böylece daha hızlı işlenebilir oldu. Bu da bizi veri tasarrufunun önemliliğini hesaplama noktasına getirdi.
Özellikle mobil uygulamaların ortaya çıkmasıyla "teknolojinin fastfoodu" olarak adlandırdığım APIler büyük veri kaynağı olmakla beraber aynı zamanda kompakt ve hızlı olması gerekir. Sürekli inşa edilen yapılarda hızlı değişen ihtiyaçlar için çözümler üretirken bu hızlı tüketim ürünü bir süre sonra dinamiklik çabasıyla beraber aynı zamanda "herkes için herşey" yaklaşımına yol açıyor. Bu yaklaşım data transferi konusunda daha rahat davranmamızı ve istemcileri özellikle de mobil uygulamaları tüketmesi gerektiğinden daha fazla dataya maruz bırakmamıza sebep oluyor.
API'lerin inşasında, özellikle birden çok istemciye hizmet veren yapılarda karşılaştığım bir sorunu beraberinde getiriyor. Bu inşa süreci uzun ve çoğu defa bir birini tekrar eden fakat yapılması kaçınılmaz iş eforu ortaya çıkarırken, maliyeti artıran ve esnekliği azaltan bir takım geliştirmelere sürekli ihtiyaç yaratıyor. Bu durum bizi daha esnek ve tasarruflu yaklaşımlar arayışına sokuyor. Sıradaki yazım da bu yaklaşımlardan birini inceleyeceğiz ve derinlemesine öğrenmeye gerek kalmadan nasıl kullanacağımıza dair bir seçenek paylaşacağım.
Takipte kalın!