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ı / İDBurada '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 / 5005i00000W4GM5AANSonuç:
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+ObjectAPINameBir 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.
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.
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.
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.