Salesforce'ta Rest API'yi Kullanarak Kayıtları Alın

Salesforce Ta Rest Api Yi Kullanarak Kayitlari Alin



Bu kılavuzda, Salesforce'ta Workbench aracılığıyla REST API ile Salesforce kayıtlarının nasıl alınacağını tartışacağız. Bu kılavuzun bir parçası olarak, Workbench'in nasıl kullanılacağını, sObject kullanarak belirli kayıtları getirmeyi ve sorguyu kullanarak bir nesneden birden çok kaydı getirmeyi ve Apex özel REST API'sini yazarak kayıtları getirmeyi tartışacağız. Demo için Salesforce Standard Case nesnesini kullanacağız. Salesforce arka ucunda herhangi bir vaka kaydı oluşturmaya gerek yoktur. Salesforce tarafından sağlanan mevcut standart vaka kaydını kullanıyoruz.

Workbench Tanıtımı

Workbench resmi bir Salesforce.com ürünü değildir. Ancak, yalnızca Salesforce hesabınızda oturum açarak seçme, ekleme, yükseltme, güncelleme ve silme gibi veri işleme işlemlerini gerçekleştirmek için Salesforce'u kullanacağız (hem Korumalı Alan hem de Üretimi destekler). Bu, Workbench'te Salesforce ile oturum açmak için resmi web sitesidir: https://workbench.developerforce.com/login.php .

Şu andan itibaren, yalnızca API sürümünü olduğu gibi bırakın ve “Salesforce ile Giriş Yap” düğmesine tıklayın.









REST Explorer'a ihtiyacımız var. 'Yardımcı programlar' sekmesine gidin ve 'REST Explorer' üzerine tıklayın.







Kullanıcı arayüzünü aşağıdaki çizimdeki gibi göreceksiniz. Bu kılavuzun tamamındaki kayıtları Salesforce'tan almak için GET'i seçmemiz gerekiyor. Salesforce kayıtlarını getiren URI'yi belirtmemiz ve “Execute” butonuna tıklamamız gerekiyor.



Salesforce Kimliği ile Belirli Kaydı Alın

Salesforce kayıt kimliğine bağlı olarak, Salesforce'un tüm kaydını getirebiliriz. URI'yi aşağıdaki gibi ayarlamamız gerekiyor:

/ Hizmetler / veri / v56.0 / nesneler / nesneAPIAdı / İD

Burada 'objectAPIName', Salesforce Standard/Custom nesnesidir ve 'id', Salesforce Kimliğini ifade eder.

Geri dönmek:

Aşağıdaki gibi JSON formatında HTTP/1.1 200 OK ham yanıtını alacaksınız:

{
'Öznitellikler' : {
'tip' :
'url' :
} ,
'alan' : Değer,
...
}

Örnek:

Bu örnekte, 5005i00000W4GM5AAN vaka kaydını getiriyoruz.

TİP: / Hizmetler / veri / v56.0 / nesneler / Dava / 5005i00000W4GM5AAN

Sonuç:

Yanıtın JSON formatında üretildiğini görebiliriz.

Sonuçları doğrudan buradan da görüntüleyebiliriz:

Sorgu ile Birden Fazla Kayıt Alın

Salesforce nesnesinden birden fazla kayıt almanın zamanı geldi. Önceden, nesneleri URI'de belirtmiştik. Burada sorguyu parametre olarak alan bir sorgu belirlememiz gerekiyor.

URI: hizmetler / veri / v57.0 / sorgu / ? Q =SELECT+field1,field2,....+from+ObjectAPIName

Bir sorguda anahtar kelimeleri birleştirmek için sınırlayıcı olarak “+” kullanmamız gerekir. TotalSize değerini döndürür ve bir klasöre kaydeder. Her kayıt için klasör adı [Öğe 1],…[Öğe n].

Örnek 1:
Case nesnesinden CaseNumber, durum, öncelik ve açıklama içeren kayıtları döndürelim.

/ Hizmetler / veri / v57.0 / sorgu / ? Q =SEÇ+VakaNumarası,Durum,Öncelik,Açıklama+dan+Vaka

Sonuç:

“Tümünü Genişlet” seçeneğine tıkladığınızda tüm kayıtları nitelikleri ve değerleri ile birlikte göreceksiniz.

İlk ve son kayıtları göstereyim:

Örnek 2:
İlk örnekte görüldüğü gibi aynı alanlara sahip sadece üç kayıt döndürelim.

/ Hizmetler / veri / v57.0 / sorgu / ? Q =SEÇ+VakaNumarası,Durum,Öncelik,Açıklama+dan+Vaka+sınır+ 2

Sonuç:
Case nesnesinde bulunan ilk iki kayıt döndürülür.

Örnek 3:
“New” statüsündeki kayıtları seçen sorguda WHERE koşulunu belirtelim.

/ Hizmetler / veri / v57.0 / sorgu / ? Q =SEÇ+VakaNumarası,Durum,Öncelik,Açıklama+dan+Vaka+nerede+ Durum = 'Yeni'

Sonuç:

'Yeni' durumunda beş kayıt mevcuttur.

Apex'te Özel Dinlenme Kaynağı

Workbench'te URI'yi belirterek Salesforce nesnesinden kayıt döndüren Salesforce Apex'i kullanabiliriz. Apex'te REST yazmak için, Apex sınıfınızdaki REST API'sine erişen bazı ek açıklamaları kullanmalıyız. Apex sınıfımızın global olarak statik olması gerektiğinden emin olun.

1. @RestResource Açıklama

Bu ek açıklama, bir Apex sınıfını REST kaynağı olarak gösterenleri etkinleştirmek için kullanılır. Workbench'te URI'yi bulmak için kullanılan bir parametre olarak urlMapping'i alır.

Sözdizimi: @RestResource(urlMapping='/Version/ApexClassName/')

'Sürüm', V56.0 gibi Workbench sürümünüzdür ve 'ApexClassName', Rest API kaynaklarının dahil olduğu Apex sınıfınızdır.

2. @HttpGet Açıklama

Bu ek açıklama, bir Apex sınıfını REST kaynağı olarak gösterenleri etkinleştirmek için kullanılır. Sunucuya bir HTTP GET isteği gönderildiğinde çağrılır ve belirtilen kaynağı döndürür.

Sözdizimi: @httpGet

Örnek 1: Tek Param

Case nesnesinden id, CaseNumber, durum, öncelik ve vakadan kaynak döndürmek için “Rest Get” yöntemini içeren “RestApi_Get_Record.apxc” Apex sınıfını yazın.

@ dinlenme kaynağı ( urlMapping = '/v56.0/RestApi_Get_Record/' )
genel sınıf RestApi_Get_Record {

// REST - Yöntemi Al
@ httpGet
global statik Case getCaseDetails ( ) {

// nesne oluştur için Vaka nesnesi
Vaka case_obj = yeni Vaka ( ) ;
Harita < Dize, Dize > paramsMap = RestContext.request.params;

// Almak dava İD
String caseid =paramsMap.get ( 'giriş_kimliği' ) ;

// olacak SOQL sorgusu geri dönmek İD ,CaseNumber,Status,Priority,Origin from Case from
// Vaka nesnesi
vaka_nesnesi = [ seçme İD ,CaseNumber,Status,Priority,Origin from Case Id =:caseid ] ;
geri dönmek vaka_nesnesi;
}
}

URI ve Sonuç:

Workbench'e gidin ve REST Explorer'a gidin. id'yi input_id parametresine 5002t00000Pdzr2AAB olarak iletin.

/ Hizmetler / apexrest / v56.0 / RestApi_Get_Record / ? girdi_kimliği =5002t00000Pdzr2AAB

Açıklama:

  • 'case_obj' durumu için bir nesne oluşturun.
  • RestContext.request.params kullanarak parametreleri alın.
  • input_id parametresinden vaka kimliğini alın ve bunu kasa kimliği değişkeninde saklayın.
  • “caseid” vakasının Case nesnesinden vakadan id, CaseNumber, durum, öncelik, orijini döndüren SOQL sorgusunu yazın.
  • Vaka nesnesini (case_obj) döndürün.

Örnek 2: Çoklu Parametreler

Önceki Apex Sınıfını kullanın ve kimlikle birlikte 'Durum' paramını alın. Bu iki parametreyi '&' ile ayrılmış Workbench URI'sinde belirtin.

@ dinlenme kaynağı ( urlMapping = '/v56.0/RestApi_Get_Record/' )
genel sınıf RestApi_Get_Record {

// REST - Yöntemi Al
@ httpGet
global statik Case getCaseDetails ( ) {

// nesne oluştur için Vaka nesnesi
Vaka case_obj = yeni Vaka ( ) ;
Harita < Dize, Dize > id_param = RestContext.request.params;
Harita < Dize, Dize > status_param = RestContext.request.params;

// id_param'ı case_id içine alın
Dizi case_id = id_param.get ( 'giriş_kimliği' ) ;
// Status_param'ı case_status'a alın
Dizi case_status =status_param.get ( 'durum' ) ;

vaka_nesnesi = [ seçme İD ,CaseNumber,Status,Priority,Origin from Case burada Id =:case_id ve Status =: case_status ] ;
geri dönmek vaka_nesnesi;
}
}

URI ve Sonuç:

Workbench'e gidin ve REST Explorer'a gidin. URI'de input_id'yi 5002t00000PdzqwAAB olarak ve durumu 'Kapalı' olarak iletin.

/ Hizmetler / apexrest / v56.0 / RestApi_Get_Record / ? girdi_kimliği =5002t00000PdzqwAAB & durum =Kapalı

Çözüm

Workbench kullanarak Salesforce REST API aracılığıyla Salesforce kayıtlarını almaya ilişkin üç senaryoyu ele aldık. Belirli bir kaydı döndürmek için, kimliği URI'de parametre olarak geçirerek sObject'i belirtmemiz gerekir. Benzer şekilde, belirli kayıtları almak için sorgu parametrelerini iletiyoruz. Apex'i kullanarak, tekli/çoklu paramlara dayalı kaydı seçmek için kendi “Get” yöntemimizi oluşturabiliriz.