- Konu sahibi
- #1
Graph API nedir?
Graph API adı, verileri nesneler ve bunların ilişkileri üzerinden sunan platform API’lerinde kullanılır. Web geliştirmede bu terimle sıkça Meta’nın Graph API’si kastedilir: kullanıcı, sayfa veya reklam hesabı gibi nesneler ve bunlara bağlı kayıtlarla programlı olarak çalışılır. Microsoft Graph ise Microsoft 365 ve Entra gibi Microsoft hizmetlerine erişim sağlayan ayrı bir API ailesidir.
Bu ad ortak bir kimlik doğrulama sistemi veya bütün sağlayıcılarda aynı çalışan tek bir protokol anlamına gelmez. Bir platformun token’ı, nesne kimliği veya sorgu parametresi başka bir platformda doğrudan kullanılamaz. İlk adım, hangi ürünün Graph API’sini kullanacağınızı belirlemektir.
Nesne, ilişki ve alan neyi ifade eder?
Meta’nın modelini anlamak için üç kavramı ayırın:
- Düğüm veya nesne: API’nin kimliğiyle temsil ettiği kullanıcı, sayfa ya da reklam hesabı gibi varlık.
- Kenar veya ilişki: Bir nesneye bağlı kayıtlar; örneğin yetkili bir kullanıcının erişebildiği reklam hesapları.
- Alan: Nesnenin yanıtta istenen id veya name gibi özellikleri.
Nesneye erişim izni, bütün ilişkilerine ve alanlarına erişim anlamına gelmez. Hesap rolü, token türü, uygulamaya verilmiş izin ve kullanılan API sürümü sonucu etkileyebilir. Kullanıcı arayüzünde gördüğünüz bir bilginin API’den herkese açık biçimde alınabileceğini varsaymayın.
Kavramsal bir isteği nasıl okursunuz?
Aşağıdaki yol, bir ilişki listesinin nasıl düşünülebileceğini gösteren şemadır; gerçek bir adrese gönderilecek hazır istek değildir:
Kod:
GET /{desteklenen-surum}/{nesne-kimligi}/{iliski}?fields=id,name
Süslü parantezli bölümler, ilgili sağlayıcının belgesindeki gerçek sürüm, nesne ve ilişkiyle değiştirilir.
fields örneği Meta’daki alan seçimine karşılık gelir; her Graph adlı API’nin aynı parametreyi kullandığı anlamına gelmez. İstek ayrıca sağlayıcının beklediği uygun erişim token’ıyla yetkilendirilir.Liste yanıtında yalnızca ilk sayfa bulunabilir. Meta SDK’sındaki kenar gezginleri,
paging altında sonraki sayfa veya imleç bilgilerini izleyerek kayıtları sırayla alır. Tek yanıtta gördüğünüz listeyi bütün sonuçlar kabul etmeyin. Sayfalama bağlantıları kimlik bilgisi içerebileceğinden bunları günlük veya ekran görüntülerinde açıkça paylaşmayın.Benzer adları karıştırmayın
| Terim | Neyi anlatır? | Doğru yaklaşım |
|---|---|---|
| Meta Graph API | Meta platformundaki nesne ve ilişkilerle işlem yapar | İlgili ürünün nesne, izin ve sürüm belgesini kullanın |
| Microsoft Graph | Microsoft bulut hizmetlerine erişim sağlar | Microsoft’un endpoint ve yetki modelini izleyin |
| GraphQL | API’ler için sorgu dili ve çalıştırma modelidir | Şema, sorgu ve mutation kurallarını inceleyin |
| REST | Kaynaklarla HTTP üzerinden çalışmada kullanılan mimari yaklaşımdır | Graph adının REST kullanımını dışlamadığını bilin |
Özellikle “Graph API, REST’in tersidir” sonucu yanlıştır. Microsoft Graph REST API’leri sunar; nesne ilişkilerini HTTP yollarıyla göstermek REST yaklaşımıyla bağdaşabilir. GraphQL ise adında graph bulunmasına rağmen Meta Graph API’sinin başka adı değildir.
İlk entegrasyonu kurarken
- İş çıktısını yazın: hangi nesneden hangi bilgiyi okuyacaksınız, yoksa bir kaydı değiştirecek misiniz?
- Ürünün resmî referansında nesneyi, ilişkiyi ve desteklenen alanları bulun. Başka ürüne ait örnek yolu kopyalamayın.
- Gerekli uygulama kaydını ve en dar yetkili token türünü hazırlayın. Gizli anahtarları kaynak koduna veya kullanıcıya gönderilen dosyalara koymayın.
- Önce yalnız gerekli alanları isteyen küçük bir okuma isteğiyle başlayın. Başarılı yanıtın beklenen nesneye ait olduğunu ve eksik alanları kontrol edin.
- Boş sonuç, yetki hatası, süresi dolan token ve sayfalama durumlarını ayrı işleyin. Hız sınırlarında kontrolsüz yeniden deneme döngüsü kurmayın.
Bir hata geldiğinde token’ı rastgele yenilemek yerine hata kodunu, çağrılan nesneyi ve gerekli izni karşılaştırın. Boş liste de tek başına arıza kanıtı değildir; ilişkili kayıt bulunmayabilir veya görünürlük sınırı uygulanıyor olabilir. SDK kullanmak bu izin denetimlerini ortadan kaldırmaz.
Sık sorulan sorular
Graph API için grafik veritabanı kurmam gerekir mi?
Hayır. Kullandığınız platform veriyi bir API modeliyle sunar; kendi uygulamanızın aynı depolama teknolojisini kullanması gerekmez. API’nin adı, arka planda hangi veritabanının bulunduğunu da kanıtlamaz.
Tek bir SDK bütün Graph API’leri destekler mi?
Genellikle her sağlayıcının SDK’sı kendi ürün, kimlik doğrulama ve nesne modeline yöneliktir. Meta Business SDK ile Microsoft Graph istemcisini birbirinin yerine kullanamazsınız.
API sürümünü belirtmesem de uygulama kalıcı çalışır mı?
Böyle bir garanti yoktur. Sağlayıcının sürüm seçimi ve kullanım ömrü kurallarını izleyin; desteklenen sürüme geçişte izin, alan ve davranış değişikliklerini test edin.