Bir API yazdığınızı düşünürsek, API’lere gelen requestleri nasıl kontrollerden geçirirsiniz?
comments
4 references
// Comments are closed.
Bir API yazdığınızı düşünürsek, API’lere gelen requestleri nasıl kontrollerden geçirirsiniz?
// Comments are closed.
“Kontrolden geçirmek” derken kastın nedir?
Belirli şartlara göre uygunluğunu kontrol etmek yani validasyon yapmak mı?
Hangi dil ve hangi framework’u kullanıyorsun?
Bir REST API yazdığımızı düşünelim ve api endpointler sayesinde sizin resourcelarınıza ulaşmaya çalışacaklar. Dediğiniz gibi requestin uygunluğu ve validasyonu nasıl yapılmalı, ne gibi yapılar kullanılıyor?
Sorulara devam ettiğin sürece bunu yorum olarak yazarsan okuması daha kolay olur 🙂 Şimdi cevabına geçelim.
Kullandığın programlama diline ve framework bazında değişir.
Old school mantıkla başlayalım.
Herşeyi kendin yapabilirsin. Controller kodunun başında daha gidip if satırlarını sıralayıp bakabilirsin. Biraz zahmetli. Ama bütün dillerde her zaman kullanılabilir. Kesin çözüm.
Biraz daha güzeline bakalım
Mesela Java/Spring ikilisini kullandığını varsayalım. JSR 380 diye bir standard var. Basit validasyonlar için bunu kullanabilirsin. Gerçi bunu kullandıkça sanıyorum dah gelişmiş kullanımlarını da öğreneceksindir. Ama örnek verelim.
Bu mesela bir User sınıfı burada gördüğün annotation kullanımı bahsettiğim standard üzerinde belirlenmiş. Temel işlemler için çok da kullanışlı oluyor. Bu sınıfı nasıl valide edeceksin, hemen o kısma bakalım. Controller üzerindeki metodunun ilk satırında aşağıdaki gibi kontrol edebilirsin.
Normalde bu standardı Spring kendisi de kontrol ediyor olması lazım ma bunu springe bıraktığım zaman sanki herşeyine erişemiyorum gibi hissediyorum şahsen. Neyse JSR 380 spring kullanımı gibi arattırabilirsin. Unutmaman gereken jsr380 standardını gerçekleştiren bir kütüphaneyi pom/classpath içine eklemen lazım. Sanıyorum en fazla hibernate kullanılıyor. Ya da ben hep öyle gördüm.
Bu kadar java yeter herhalde.
Bir de başka bir dilde inceleyelim. Mesela benim biraz bilgili olduğum php.
Laravel kullanırken https://laravel.com/docs/8.x/validation bu linke bi bakabilirsin ki gayet güzel anlatır. Kısaca aşağıdaki koda bakalım
Burada yaptığı request içinde title ve body alanlarının olduğunu ve bunların nasıl olduğunu tanımlıyor. Eğer hata varsa ekrana yansıtmak için de aşağıaki kodu kullanıyor.
Eğer biraz daha kodunu parçalamak istersen request nesneleri oluşturup validation kısmını içine de atabilirsin.
Aslında temel olarak anlaman gereken kullandığın framework yapısını biraz anlaman gerekir. Bütün framework yapıları validation kısmına sahiptir sanıyorum.
Ya da eski ekol if yazmaya devam.