RehberSalesforce

Salesforce API’leri: Kapsamlı Bir Rehber – Hangi API’yi Ne Zaman Kullanmalısınız?

Modern iş dünyasında, sistemlerin birbiriyle iletişim kurması artık bir lüks değil, temel bir gereklilik haline gelmiştir. Salesforce, dünyanın önde gelen CRM platformu olarak, geliştiricilere ve entegrasyon uzmanlarına çok çeşitli API’ler sunarak bu ihtiyacı karşılamaktadır. Ancak doğru API’yi seçmek, başarılı bir entegrasyon projesinin en kritik adımlarından biridir. Yanlış bir API seçimi, performans sorunlarından veri kayıplarına, hatta projenin tamamen başarısız olmasına kadar birçok olumsuz sonuca yol açabilir.

Bu kapsamlı rehberde, Salesforce’un sunduğu ana API’leri inceleyeceğiz, kullanım senaryolarını değerlendireceğiz ve hangi durumda hangi API’nin seçilmesi gerektiğine dair pratik bilgiler sunacağız. İster deneyimli bir Salesforce geliştirici olun, ister bu ekosisteme yeni adım atıyor olun, bu rehber size doğru API’yi seçme ve kullanma konusunda değerli bilgiler sağlayacaktır.

1. Salesforce API’lerine Genel Bakış

Salesforce, farklı entegrasyon senaryolarına hitap eden 20’den fazla API sunar. Bu API’ler temel olarak şu kategorilere ayrılabilir:

  • Veri Odaklı API’ler: REST API, SOAP API, Bulk API, Analytics API
  • Olay Odaklı API’ler: Streaming API, Outbound Messaging
  • Metadata ve Geliştirme API’leri: Metadata API, Tooling API
  • UI Entegrasyon API’leri: User Interface API, Lightning Web Components API
  • Kompozit API’ler: Composite API, SObject Tree API

Salesforce’un bu kadar çok API sunmasının nedeni, farklı entegrasyon senaryolarının farklı ihtiyaçlara sahip olmasıdır. Örneğin, birkaç kaydı güncellemek için REST API ideal olabilirken, milyonlarca kaydı içe aktarmak için Bulk API daha uygun olacaktır. Ya da organizasyon yapılandırmasını otomatize etmek istiyorsanız, Metadata API en doğru seçim olacaktır.

2. Veri Odaklı API’ler

REST API

REST API, Salesforce’taki en yaygın kullanılan API’dir ve modern uygulamaların çoğu için tercih edilen seçenektir. HTTP ve JSON tabanlı olması, kullanımını basitleştirir ve hemen hemen her programlama diliyle kullanılabilir.

En Uygun Olduğu Senaryolar:

  • Mobil uygulamalar ve tek sayfa web uygulamaları
  • Az sayıda kayıt üzerinde CRUD işlemleri
  • Mikro servis mimarileri
  • UI üzerinden yapılan çağrılar

Örnek Kullanım:

// Bir hesap kaydını getirme
fetch(‘https://instance.salesforce.com/services/data/v57.0/sobjects/Account/001XXXXXXXXXXXX’, {
method: ‘GET’,
headers: {
     ‘Authorization’: Bearer YOUR_ACCESS_TOKEN’,
     ‘Content-Type’: ‘application/json’
 }
})
.then(response => response.json())
.then(data => console.log(data));

Sınırlamalar:

  • Tek seferde işlenebilecek kayıt sayısı (genellikle 2000’e kadar)
  • 24 saatte yapılabilecek API çağrısı sayısı (organizasyon tipine göre değişir)

SOAP API

SOAP API, Salesforce’un ilk API’sidir ve enterprise entegrasyonlarda hala yaygın olarak kullanılmaktadır. WSDL tabanlı olması, güçlü tip kontrolü sağlar ve karmaşık işlem mantığı gerektiğinde avantaj yaratır.

En Uygun Olduğu Senaryolar:

  • Enterprise entegrasyon platformları (SAP, Oracle vb.)
  • Sıkı veri doğrulama gerektiren uygulamalar
  • SOAP protokolünü destekleyen .NET gibi ortamlar

Örnek Kullanım:

// Java ile SOAP API kullanım örneği
ConnectorConfig config = new ConnectorConfig();
config.setUsername([email protected]);
config.setPassword(“password+securityToken”);
config.setAuthEndpoint(“https://login.salesforce.com/services/Soap/u/57.0”);

PartnerConnection connection = new PartnerConnection(config);
SObject account = new SObject();
account.setType(“Account”);
account.setField(“Name”, “New Account”);
SaveResult[] results = connection.create(new SObject[] { account });

REST ve SOAP Arasındaki Temel Farklar:

  • SOAP API, karmaşık nesneler ve referanslarla çalışmada daha güçlüdür
  • REST API, modern web teknolojileriyle daha kolay entegre olur
  • SOAP API, WSDL üzerinden güçlü tip kontrolü sağlar
  • REST API, genellikle daha iyi performans ve daha düşük bant genişliği kullanımı sunar

Bulk API ve Bulk API 2.0

Bulk API, milyonlarca kaydı verimli bir şekilde işlemek için tasarlanmıştır. Asenkron işlem, otomatik toplu işleme ve paralel çalışma gibi özelliklerle, büyük veri görevlerini optimize eder.

En Uygun Olduğu Senaryolar:

  • Veri göçü projeleri
  • Günlük büyük veri yüklemeleri
  • Milyon ölçeğinde kayıt işlemleri
  • Arka plan batch işlemleri

Bulk API 2.0 ile Bulk API 1.0 Arasındaki Farklar:

  • Bulk API 2.0, daha basit bir REST tabanlı arayüz sunar
  • Bulk API 2.0, CSV formatını doğrudan destekler
  • Bulk API 2.0, daha gelişmiş durum izleme ve hata raporlama sunar

Örnek Kullanım (Bulk API 2.0):

# Python örneği

import requests
import csv

# Job oluşturma

headers = {
     ‘Authorization’: ‘Bearer YOUR_ACCESS_TOKEN’,
     ‘Content-Type’: ‘application/json’
}
job_data = {
   ‘object’: ‘Account’,
    ‘contentType’: ‘CSV’,
    ‘operation’: ‘insert’
}
response = requests.post(
     ‘https://instance.salesforce.com/services/data/v57.0/jobs/ingest’,
    headers=headers,
    json=job_data
)
job_id = response.json()[‘id’]

# CSV verilerini yükleme
csv_data = “””Name,Industry,BillingCity
Acme Corp,Technology,San Francisco
Universal Industries,Manufacturing,Chicago”””

upload_response = requests.put(
   f’https://instance.salesforce.com/services/data/v57.0/jobs/ingest/{job_id}/batches’,
   headers={‘Authorization’: ‘Bearer YOUR_ACCESS_TOKEN’, ‘Content-Type’: ‘text/csv’},
   data=csv_data
)

# Job’ı başlatma
close_response = requests.patch(
   f’https://instance.salesforce.com/services/data/v57.0/jobs/ingest/{job_id}’,
   headers=headers,
   json={‘state’: ‘UploadComplete’}
)

Performans İpuçları:

  • Mümkün olduğunca az sayıda alan kullanın
  • İdeal batch boyutu 5,000 ile 10,000 kayıt arasındadır
  • İşlemi izlemek için JobInfo sorgulayın
  • Verileri paralel işlemek için birden fazla job kullanın

3. Olay Odaklı API’ler

Streaming API

Streaming API, Salesforce’taki veri değişikliklerini gerçek zamanlı olarak izlemek için kullanılır. Publish-subscribe modeli kullanarak, belirli olaylar gerçekleştiğinde uygulamaları bilgilendirir.

Temel Bileşenler:

  • PushTopic Events: Özel SOQL sorguları ile tanımlanan kayıt değişiklikleri
  • Generic Events: Özel tanımlı olaylar
  • Platform Events: Özelleştirilebilir, şema bazlı olaylar
  • Change Data Capture: Standart ve özel nesnelerdeki veri değişiklikleri

Örnek Kullanım (PushTopic):

// JavaScript ile PushTopic oluşturma
fetch(‘https://instance.salesforce.com/services/data/v57.0/sobjects/PushTopic’, {
  method:POST‘,
  headers: {
      ‘Authorization’: ‘Bearer YOUR_ACCESS_TOKEN’,
      ‘Content-Type’: ‘application/json’
 },
  body: JSON.stringify({
      Name: ‘AccountUpdates’,
      Query: ‘SELECT Id, Name, Industry FROM Account’,
      ApiVersion: 57.0,
      NotifyForOperationCreate: true,
      NotifyForOperationUpdate: true,
      NotifyForOperationDelete: true,
      NotifyForFields: ‘Referenced’
  })
})
 .then(response => response.json());

// CometD ile dinleme
// Not: Bu örnek için cometd kütüphanesi gereklidir
const cometd = new org.cometd.CometD();
cometd.configure({
   url: ‘https://instance.salesforce.com/cometd/57.0/’,
   requestHeaders: { Authorization: ‘Bearer YOUR_ACCESS_TOKEN’ }
});

cometd.handshake(handshakeReply => {
   if (handshakeReply.successful) {
     cometd.subscribe(‘/topic/AccountUpdates’, message => {
         console.log(‘Yeni olay:’, message.data);
   });
 }
});

Outbound Messaging

Outbound Messaging, workflow kurallarına dayalı bir entegrasyon mekanizmasıdır. Belirli bir kriter karşılandığında, Salesforce otomatik olarak dış sistemlere SOAP mesajları gönderir.

Önemli Özellikler:

  • Workflow kurallarıyla entegre çalışır
  • SOAP tabanlıdır
  • Yeniden deneme mekanizması vardır
  • Güvenli iletişim için sertifika desteği sunar

Kullanım Senaryoları:

  • Legacy sistemlerle basit entegrasyonlar
  • Salesforce’tan dış sistemlere tek yönlü bildirimler
  • Kod yazmadan basit entegrasyon ihtiyaçları

4. Özel Amaçlı API’ler

Metadata API

Metadata API, Salesforce organizasyonunuzun yapılandırmasını programatik olarak yönetmenizi sağlar. Deployment, versiyon kontrolü ve CI/CD süreçleri için vazgeçilmezdir.

Kullanım Alanları:

  • Deployment paketleri oluşturma ve dağıtma
  • Sandbox kopyalama ve senkronizasyon
  • Organizasyon yapılandırma otomasyonu
  • DevOps süreçleri

Örnek Kullanım:

<!– Apex sınıfı oluşturma –>
<soapenv: Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/”
                                 xmlns:met=”http://soap.sforce.com/2006/04/metadata”>
<soapenv:Header>
     <met:SessionHeader>
           <met:sessionId>YOUR_SESSION_ID</met:sessionId>
     </met:SessionHeader>
</soapenv:Header>
<soapenv:Body>
     <met:create>
           <met:metadata xsi:type=”met:ApexClass”>
           <met:apiVersion>57.0</met:apiVersion>
           <met:status>Active</met:status>
           <met:name>MyUtilityClass</met:name>
          <met:body>public class MyUtilityClass {
                 public static void doSomething() {
                       System.debug(‘Hello World’);
                             }
                      }</met:body>
               </met:metadata>
          </met:create>
     </soapenv:Body>
</soapenv:Envelope>

Tooling API

Tooling API, IDE’ler ve geliştirme araçları oluşturmak için tasarlanmıştır. Apex, Visualforce ve Lightning bileşenlerini programatik olarak oluşturmanıza ve değiştirmenize olanak tanır.

En Uygun Olduğu Senaryolar:

  • Özel IDE ve geliştirme araçları
  • Kod kalitesi ve test araçları
  • Geliştirici verimliliği çözümleri

Composite API ve Composite Resources

Composite API, tek bir HTTP çağrısında birden fazla işlemi gruplandırmanıza olanak tanır. Bu, ağ çağrılarını azaltır ve atomik işlemler yapmayı sağlar.

Temel Özellikleri:

  • Tek bir API çağrısında birden fazla işlem
  • İşlemler arasında bağımlılıkları yönetme
  • Kısmi başarı veya tam başarı/başarısızlık seçenekleri
  • Ağ trafiğini optimize etme

Örnek Kullanım:

// Tek bir API çağrısında birden fazla işlem yapma
fetch(‘https://instance.salesforce.com/services/data/v57.0/composite’, {
     method: ‘POST’,
     headers: {
         ‘Authorization’:Bearer YOUR_ACCESS_TOKEN’,
         ‘Content-Type’: ‘application/json’
  },
body: JSON.stringify({
      “compositeRequest”: [
 {
            “method”: “POST”,
            “url”: “/services/data/v57.0/sobjects/Account”,
            “referenceId”: “newAccount”,
            “body”: {
                “Name”: “New Customer”
   }
},
{
            “method”: “POST”,
            “url”: “/services/data/v57.0/sobjects/Contact”,
            “referenceId”: “newContact”,
            “body”: {
                 “LastName”: “Smith”,
                 “AccountId”: “@{newAccount.id}”
            }
        }
    ]   })
})
.then(response => response.json());

5. UI Entegrasyonları

User Interface API

User Interface API, Salesforce Lightning Experience’ın altında yatan API’dir. Lightning bileşenlerinin davranışını ve performansını özelleştirmenize olanak tanır.

Kullanım Senaryoları:

  • Özel mobil uygulamalar
  • Lightning deneyimine benzer özel web uygulamaları
  • Salesforce veri modeliyle çalışan modern UI’lar

Lightning Web Components için API’ler

Lightning Web Components (LWC), modern web standartlarını kullanarak Salesforce üzerinde UI geliştirmeyi sağlar. LWC, standart HTML ve JavaScript kullanarak, Salesforce’un UI yapı taşlarını oluşturur.

Öne Çıkan Özellikler:

  • wire servis adaptörleri ile deklaratif veri erişimi
  • UI API ile entegrasyon
  • Reactive veri bağlama

6. Yeni Nesil Entegrasyon Çözümleri

MuleSoft ve Salesforce Entegrasyonu

Salesforce’un MuleSoft’u satın almasıyla, entegrasyon senaryoları için çok daha güçlü seçenekler sunulmaktadır. MuleSoft’un API-led connectivity yaklaşımı, karmaşık entegrasyon senaryolarını basitleştirir.

Temel Avantajlar:

  • API yönetimi ve güvenliği
  • Çok adımlı ve çok sistemli iş akışları
  • Veri dönüşümü ve zenginleştirme
  • Entegrasyon şablonları ve hızlı başlangıç

Salesforce Functions

Salesforce Functions, Heroku altyapısı üzerinde çalışan, elastik ölçeklendirilebilir serverless fonksiyonlar geliştirmenize olanak tanır.

Kullanım Senaryoları:

  • Yoğun hesaplama gerektiren işlemler
  • Salesforce platformu dışındaki kaynaklara erişim
  • Event-driven mimariler

7. API Seçim Kılavuzu

Doğru API’yi seçmek için aşağıdaki soruları değerlendirin:

  1. Veri Hacmi: Kaç kayıt işleyeceksiniz? 
    • Az sayıda kayıt (birkaç yüz): REST API
    • Orta düzey (birkaç bin): REST API veya SOAP API
    • Büyük hacim (yüz bin – milyon): Bulk API
  2. İşlem Tipi: 
    • CRUD işlemleri: REST API
    • Karmaşık sorgular: SOAP API
    • Gerçek zamanlı bildirimler: Streaming API
    • Metadata değişiklikleri: Metadata API
    • Geliştirici araçları: Tooling API
  3. Entegrasyon Ortamı: 
    • Modern web/mobil uygulamalar: REST API
    • Enterprise sistemler: SOAP API
    • UI ağırlıklı uygulamalar: UI API
    • Event-driven mimariler: Platform Events
  4. Performans Gereksinimleri: 
    • Düşük gecikme: REST API
    • Yüksek verimlilik: Bulk API
    • Ağ optimizasyonu: Composite API

8. API Kullanım Best Practices

Rate Limiting ve Governor Limitleri

Salesforce, platform istikrarını korumak için API çağrılarına çeşitli limitler uygular:

  • 24 saatlik API çağrı limitleri (organizasyon başına)
  • 15/30/60 dakikalık senkron çağrı limitleri
  • Paralel Bulk API job limitleri
  • Concurrent API isteği limitleri

En İyi Uygulamalar:

  • Toplu işlemleri optimize edin (mümkün olduğunca az API çağrısı yapın)
  • Composite API ile çoklu işlemleri birleştirin
  • Limit uyarılarını izleyin ve dinamik olarak ayarlayın
  • İş yükünü gün içine yayın

Güvenlik ve Authentication

Salesforce API’leri ile çalışırken güvenlik kritik öneme sahiptir:

  • OAuth 2.0 kullanın ve refresh token stratejisini benimseyin
  • JWT akışını arka plan entegrasyonları için değerlendirin
  • API erişimini profillerle ve izin setleriyle sınırlayın
  • Bağlı uygulamaları (Connected Apps) doğru yapılandırın
  • IP kısıtlamalarını ve saat bazlı kısıtlamaları kullanın

Hata Yönetimi ve Dayanıklılık

Güvenilir entegrasyonlar için sağlam hata yönetimi şarttır:

  • Exponential backoff ile yeniden deneme mekanizmaları uygulayın
  • Hata mesajlarını detaylı şekilde loglamayı unutmayın
  • Composite API’de allOrNone parametresini kullanım amacınıza göre ayarlayın
  • Circuit breaker pattern uygulayarak sistemleri koruyun
  • Asenkron işlemler için durum kontrolü mekanizmaları kurun

API Entegrasyonunuzun Başarısı İçin Stratejik Yaklaşım

Salesforce API’leri, modern entegrasyon senaryolarının neredeyse tüm ihtiyaçlarını karşılayacak zenginlikte ve çeşitlilikte araçlar sunar. Doğru API’yi seçmek, entegrasyon projenizin başarısı için kritik öneme sahiptir. Bu seçimi yaparken, veri hacmi, işlem tipi, entegrasyon ortamı ve performans gereksinimleri gibi faktörleri göz önünde bulundurarak, kullanım senaryonuza en uygun API’yi belirleyebilirsiniz.

Salesforce ekosistemi sürekli gelişmeye devam ettiği için, API’ler hakkındaki bilgilerinizi güncel tutmak, Trailhead modüllerini takip etmek ve Salesforce geliştirici topluluğuyla etkileşimde bulunmak, başarılı entegrasyon projeleri geliştirmeniz için son derece değerlidir.

 

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu