Firebase ile Başarıyla Bir API Nasıl Oluşturulur?

Yayınlanan: 2021-09-07

Firebase, 2012 yılında başlatılan ve iki yıl sonra Google tarafından satın alınan bir uygulama geliştirme platformudur. Başlangıçta Firebase, gerçek zamanlı uygulamalar için bir veritabanı olarak düşünülmüştü, ancak Google potansiyelini gördü ve ona ek hizmetler eklemeye karar verdi.

Şu anda Firebase, web ve mobil uygulamaların oluşturulmasını kolaylaştırmak için 18 hizmete sahip bir BaaS (hizmet olarak arka uç) sistemidir. Firebase'in BaaS hizmetlerini kullanan şirketler arasında Accenture, Alibaba Travels, Stack, Twitch ve Instacart ile 2.300'den fazla şirket var.

Firebase kullanmanın faydaları

Firebase'in sunduğu hizmetlerden ilki, gerçek zamanlı veritabanıydı ve en büyük çekilişlerinden biri olmaya devam ediyor. Firebase Gerçek zamanlı veritabanları bulutta barındırılır, verileri JSON biçiminde depolar ve onlara bağlı her istemciyle gerçek zamanlı olarak senkronize edilir. İster iOS SDK, ister Android SDK veya JavaScript SDK kullanılsın, bir Firebase Realtime veritabanına bağlı tüm uygulamalar, veritabanının bir örneğini paylaşır ve her zaman en son verilerle güncel tutulur.

Cloud Firestore, başka bir ilginç Firebase hizmetidir. Küresel ölçekte mobil ve web uygulamaları için veri depolama, senkronizasyon ve sorgulamayı kolaylaştırmak için tasarlanmış bir NoSQL belge veritabanıdır. İlgili verileri depolamak için hiyerarşilerin oluşturulması ve verileri almak için anlamlı sorgular, Cloud Firestore'un tüm potansiyelinin gerçekleştirilmesine olanak tanır. Buna karşılık, sorgular, veri kümesi boyutundan ziyade sonuçların boyutuna göre ölçeklenir. Bu, uygulamaların, ihtiyaçların kapasiteyi aştığı ana kadar beklemeden en baştan ölçeklendirmesine olanak tanır.

Firebase, yukarıda bahsedilen veritabanı hizmetlerine ek olarak, diğer birçok şeyin yanı sıra barındırma hizmetleri, dosya depolama, işlevler (AWS Lambda tarzı) sunar.

API oluşturma

API'ler, kendi veya üçüncü taraf uygulamalarınızın kullanması için hizmetler sağlamanın bir yoludur. Firebase, bu hizmetler için bir arka uç kurma zahmetine girmeden Firebase'in kendi hizmetlerinden yararlanan özel hizmetler sağlamanıza olanak tanır. Örneğin, endüstriyel sensörler tarafından toplanan bilgileri sorgulamak için üçüncü taraf uygulamalar için bir Firebase gerçek zamanlı veritabanına erişim sunabilirsiniz.

Firebase'de bir API oluşturmanın ilk adımı, Firebase konsoluna erişmek ve "Proje ekle"yi tıklayıp yeni projeye bir isim vererek bir proje eklemektir. Google size yeni projeniz için Google Analytics'i etkinleştirme seçeneği sunacaktır. API'nizden A/B testi ve çok çeşitli istatistiksel raporlar gibi avantajlar elde edeceğiniz için bu öneriyi kabul etmeniz önerilir.

Projenizi oluşturduktan sonra API'nizin kullanacağı Firebase hizmetlerini seçebileceksiniz. Bu görevi göstermek için Firebase Realtime veritabanı hizmetinin nasıl kullanılacağını göreceğiz.

Firebase'de gerçek zamanlı bir veritabanı kurma

Soldaki gezinme çubuğunda, Geliştirme bölümünün içinde Gerçek Zamanlı Veritabanı'na tıklayın. Sağda bir "Veritabanı Oluştur" düğmesi görünecektir. Firebase'de ilk veritabanınızı oluşturmak için üzerine tıklayın.

Ardından, yeni veritabanınız için çeşitli coğrafi konum seçenekleri arasından seçim yapmanız gerekecektir. Kullanıcılarınıza en yakın olanı seçin. Bu, özellikle gerçek zamanlı uygulamalarda API'nizin gecikmesini en aza indirmenin önemli bir yönüdür.

Sonraki adım, veritabanınız için temel güvenlik kurallarını yapılandırmaktır. Kilitli modu seçebilir ve ardından gerektiği gibi erişim izinleri atayabilir veya tüm okuma ve yazmaları etkinleştiren test modunu seçebilirsiniz.

Başlangıçta güvenlik ayarlarını karmaşıklaştırmamak için test modu seçeneği ile başlayabilirsiniz. Güvenlik yapılandırmasını daha ayrıntılı olarak ayarlamak için kuralları daha sonra her zaman oluşturabilirsiniz.

Veritabanınızı yapılandırmayı bitirir bitirmez, ilgili API, kişisel konsolunuzun Google Cloud Platform'daki API'ler ve Hizmetler bölümünde de etkinleştirilir.

Firebase API'sini Programlama

Bu noktada, Firebase konsolunda yapılandırılmış projenizin temel öğelerine zaten sahipsiniz. Bir sonraki adım API kodunuzu yazmaktır. Bunu yapmak için, yerel bilgisayarınızda Firebase barındırma ve işlevlerini başlatmanız gerekir. Firebase araçlarını npm kullanarak kurabilirsiniz:

 npm install -g firebase-tools

Ardından firebase'e giriş yapabilir ve projenizi aşağıdaki komutlarla başlatabilirsiniz:

 firebase login firebase init

Firebase'in projenizin başlatılacağı klasör hakkında sizi bilgilendirdiği bir karşılama ekranı görüntülenecek ve bir seçenekler menüsü görüntülenecektir.

Bu menüde, İşlevler ve Barındırma'yı seçin (Barındırma seçeneği, geliştireceğiniz API için özel bir URL'ye sahip olmanızı sağlar). Ardından, daha önce oluşturduğunuz Firebase uygulamasını listeden seçin, ardından kullanılacak dili seçmeniz gerekir. Bir web API geliştirmek için JavaScript'i tercih edebilirsiniz.

Paket bağımlılıklarını kullanacaksanız, bunları işlevler klasörünün içine npm ile kurun. Ardından fonksiyonlarınız için kod yazmaya başlayabilirsiniz. İhtiyacınız olan diğer paketlerle birlikte firebase işlevlerini ve firebase-admin paketlerini eklemeyi unutmayın:

 import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';

Gerçek zamanlı veritabanını kullanmak için JavaScript SDK'nızı başlatırken URL'sini belirtmelisiniz. URL, Firebase konsolunun Gerçek Zamanlı Veritabanı bölümünde bulunur. Formatından tanıyabilirsiniz:

 https://<database-name>.<region>.firebasedatabase.app

Projenizin yapılandırma nesnesine karşılık gelen verileri değiştirerek SDK'nızı başlatmak için aşağıdaki parçacığı kullanabilirsiniz:

 var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();

API işlevinizin kodunu yazdıktan sonra, dağıtım zamanı gelmiştir. Ancak bunu yapmadan önce, proje yapılandırmanıza göre değiştirilmiş aşağıdaki satırları ekleyerek firebase.json'da bazı değişiklikler yapmanız gerekecektir:

 "rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]

Bir sonraki adım dağıtımdır. İlk kez şu komutu yürüterek tam bir dağıtım yapmanız gerekir:

 firebase deploy

Sonraki dağıtımlarda, yalnızca işlevler parametresini kullanarak yalnızca işlevleri dağıtabileceksiniz.

Dağıtım komutunu yürüttükten sonra, Firebase CLI, API'lerinizi bir web uygulamasından çağırmak için kullanabileceğiniz terminaldeki işlevlerinizin HTTP uç noktalarının URL'sini görüntüler. URL, proje kimliğinizi ve HTTP işlevi için bir bölge içerir. Örneğin, bir öğe sorgu işlevini parametre olarak itemid=1 ileterek çağırmak için aşağıdaki URL kullanılabilir:

 https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

İşlevi yürütmek için, bir tarayıcıda karşılık gelen parametrelerle URL'yi açın.

Üretim ortamına dağıtmanın, Firebase fiyatlandırma sayfasında okuyabileceğiniz gibi, kullandıkça öde olan Firebase Blaze planına abonelik gerektirdiğini unutmayın. Faturalandırma sonrası bir hizmettir, yani her ayın sonunda kullanımınız için faturalandırılırsınız.

Blaze aboneliğiniz yoksa konuşlandırma komutu API URL'nizi görüntülemez. Bunun yerine, çalışma zamanı ortamına dağıtmak istiyorsanız Blaze planına abone olmanız gerektiğini bildiren bir mesaj göreceksiniz. Bu durumda, uygulamaları Firebase üretim ortamına dağıtmak yerine yerel makinenizde oluşturmak ve test etmek için Firebase Local Emulation Suite'i kullanmaya devam edebilirsiniz. Yerel testler, uygulama geliştirme sırasında gereksiz maliyetlerden kaçınmak için yararlıdır, çünkü her bir test çalıştırması hesabınızda masraf oluşturabilir.

Yerel Test ve Prototipleme

Local Emulator Suite aracı, uygulamalarınızı yerel makinenizde test etmek için prototip oluşturmayı kolay ve kullanışlı hale getiren entegre bir kullanıcı arabirimi sunar.

Emulator Suite kullanıcı arayüzü ile diğer görevlerin yanı sıra veritabanı tasarımlarınızı, Cloud Functions iş akışlarınızı test edebilir, arka uç hizmetlerinin performansını analiz edebilir ve güvenlik kurallarındaki değişiklikleri değerlendirebilirsiniz. API işlevselliğinizi bir üretim ortamına göndermeden önce test etmek için temel olarak güvenli bir sanal alan.

İşlevlerinizi taklit etmek veya uygulamanızı yerel olarak test etmek için firebase emülatörlerini çalıştırın:start. Firestore Emulator'ı kullanabilmek için Java'nın kurulu olması gerekir. Eğer sahip değilseniz, buradan yükleyebilirsiniz.

Firestore Emulator'ı çağırdığınızda, komut, tarayıcınızda Emulator Suite kullanıcı arayüzünü açmanıza izin verecek bir URL döndürür. Varsayılan olarak, bu URL localhost:4000 olacaktır, ancak her makinede değişiklik gösterebilir.

Ayrıca HTTP işleviniz için tam bir URL alacaksınız. Bu URL şuna benzer:

 http://localhost:5001/apiproject-8753c/us-central1/itemQuery

yalnızca projenizin adı, işlevinizin adı olacaktır ve yerel makinenizde farklı bir bağlantı noktası numarası da olabilir.

İşlevi test etmek için, öykünücü tarafından döndürülen URL'yi, gerekli parametreleri (örn. ?itemid=1) ekleyerek kopyalayın ve tarayıcınızın yeni bir sekmesine girin. API yürütmesinin sonuçları Emulator Suite kullanıcı arayüzünde görünecektir.

Günlükler sekmesinde, itemQuery() işlevinin yürütüldüğünü gösteren yeni günlükler göreceksiniz. İşleviniz Firestore veritabanınızda yeni veriler oluşturuyorsa, bunu Firestore sekmesinde göreceksiniz.

API'niz için daha fazla gösterim elde etme

Geliştirdiğiniz API'lerin popüler olmasını istiyorsanız Firebase bu konuda da size yardımcı olabilir. Yalnızca uygulamanızı daha hızlı oluşturmanıza izin vererek, arka uç hizmetlerini kurmak ve çalıştırmak için çok fazla iş yapmanızı sağlamakla kalmaz, aynı zamanda ürün konumlandırmanızda size yardımcı olarak. Bu nasıl mümkün olabilir? Bunun nedeni, Firebase ile ilişkili uygulamaların arama sıralamalarında diğer uygulamalardan daha iyi sıralanmasıdır.

Ayrıca, Firebase'in uygulama indeksleme API'sini de hesaba katın. Bu araç, uygulama bağlantılarının arama sıralamalarını iyileştirir ve kullanıcıların istenen içeriği bulmasına yardımcı olur. Ayrıca Yükle düğmesini uygulamanızın ana sayfa düğmesinin arkasına yerleştirir, böylece ilgilenen kullanıcılar uygulamanızın kullanıcısı olmaktan yalnızca bir tık ötede olur.

Sonuç olarak, Firebase size yalnızca API'nizin gelişimini önemli ölçüde hızlandıran arka uç hizmetleri sunmakla kalmaz, aynı zamanda bir kez çalışır duruma getirildiğinde ve dünyaya tanıtıldığında, onu tanıtmanıza ve bundan para kazanmanıza da yardımcı olur.