API vs Database

Bilgiyi API'de tutmazsın. API, bilgiyi DB'den alır. Yani bir uygulama geliştirdin diyelim ki, elinde de MySQL veritabanı var.

Direkt MySQL'e bağlanıp veriyi almak yerine (ki bu çok sakat bir yöntemdir), yazacağın API sayesinde; önce API veriyi DB'den alıp bir endpointe basar (örneğin: websitesi.com/api/veriler), genellikle json formatında olur.

Sen de uygulamanla bu endpointe bağlanarak veriyi çekersin. Kabaca API mantığı budur. Verdiğim örneği rest API ile yapabilirsin.

Son bir sorum var neden MySQL'den direkt veriyi almak sakat bir yöntem.
 
Son bir sorum var neden MySQL'den direkt veriyi almak sakat bir yöntem.

API servisine kötü amaçlı olarak farklı kişiler isteklerde bulunabilirler ya da sorgulama servisine bir saldırı yapıp veritabanını yavaşlatır hatta çökertebilirler. Tabii farklı farklı durumlar mevcut.
Sorgu sonucunda dönen datanın boyutuna bile bağlı.
 
Son bir sorum var neden MySQL'den direkt veriyi almak sakat bir yöntem.

Yazdığın uygulamanın içine direkt MySQL'e giriş bilgilerini de girersin. Bu da kötü niyetli kişilerin, veritabanına sızmasını oldukça kolaylaştırır.
 
Son bir sorum var neden MySQL'den direkt veriyi almak sakat bir yöntem.

Uygulamalar genellikle katmanlı bir mimariye sahiptir. MVC yapısı buna örnek. Gelen istek controller'da karşılanır; controller gerekli servisi çağırır. Servisler ise repository katmanından dönen değerlerle beslenir.

Arka taraftaki veri direkt çekilmiyor, tamamen sen yönetiyorsun. Backend kısmı için konuşuyorum tabii.

Zaten başkaları tarafından kullanabilecek özel bilgilerini de public bir şekilde endpoint'le millete sunmazsın. Genelde outsource'lar tarafından kullanılan endpoint'lere de 3rd party vpn'ler ile erişiliyor.
 
Bunlar birbirinin yerine koyabilecegin seyler degil.
API abstrakt bir kavram. API denilince insanlar genelde "HTTP uzerinden haberlesilen sey" gibi cevapliyor ama bununla sinirli degil. Bu aslinda temel bilgi eksikligine isaret. Google'a "Android API" yazarsan Android SDK'sinin API'i ile karsilasirsin. C# API yazarsan Microsoft dokumantasyonunu gorursun. API sana sunulan interface'tir. Web resource olmak zorunda degil. Framework de API sunar. DB'lerin kendisi de API sunar. Dedigim gibi API abstrakt bir kavram ve "Hangisini ogreneyim" diye kiyaslayamazsin. Elmayla armut.
 
Bunlar birbirinin yerine koyabilecegin seyler degil.
API abstrakt bir kavram. API denilince insanlar genelde "HTTP uzerinden haberlesilen şey" gibi cevapliyor ama bununla sinirli degil. Bu aslinda temel bilgi eksikligine isaret. Google'a "Android API" yazarsan Android SDK'sinin API'i ile karsilasirsin. C# API yazarsan Microsoft dokümantasyonunu gorursun. API sana sunulan interface'tir. Web resource olmak zorunda degil. Framework'de API sunar. DB'lerin kendisi de API sunar. Dedigim gibi API abstrakt bir kavram ve "hangisini ogreneyim" diye kiyaslayamazsin. Elmayla armut.

Dediğinizde çok haklısınız arkadaşa şöyle tercüme edelim de öğrensin ben bilmeme rağmen kafam karıştı okurken :)

API size veri sunabilir, bir web sayfası sunabilir, bir veriyi veritabanına yazabilir ya da veritabanındaki verileri size verebilir. Siz toplu bir web uygulaması yapmak istiyorsanız API ve database kavramlarını da öğrenmeniz gerekiyor. Arasında bir versus durumu yok yaniii.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı