Salesforce Apex Çağrıları (5)

Salesforce Apex Çağrıları (5)

2016, Feb 02    

Merhabalar,

Bugün bazılarınızın şaşırabileceği bir şekilde yine ve yeniden Salesforce ve Apex’ten bahsedeceğim size. Bugünün konusu ise Apex çağrıları. Bu çağrılar nelerdir önce onlardan kısaca bahsedeyim.

Bir Apex çağrısı Apex kodunuzu dışardaki bir servisle bağlamanızı sağlar. Çağrı Apex kodundan dışardaki web servise çağrı yapar ya da HTTP isteği gönderir ve karşılık olarak bir response alır. Bu iki şekilde olabilir.

  1. XML kullanan SOAP çağrıları. Genelde kod oluşturmak için bir WSDL belgesine ihtiyaç duyar.
  2. Genelde JSON kullanan REST HTTP istekleri

Bunlar servise istek yapma ve yanıt alma konusunda birbirine benzese bile WSDL tabanlı çağrılar SOAP web servisleriyken HTTP çağrıları SOAP ya da REST kullanan herhangi bir HTTP servisi olabilir.

Salesforce’da çağrı yapabilmek için öncelikle çağrı yapılacak adresi (endpoint) Remote Site Settings’e eklemek gerekir. Bu örneğimiz için benim yazdığım çok basit bir servisi kullanacağım. Remote Site Settings’e aşağıdaki şekilde http://sleepy-fortress-56786.herokuapp.com adresini ekleyelim.

Setup - > Quick Find kutusu -> Remote Site Settings -> New -> İsim ve URL alanları doldurulacak - > Save

Şimdi Developer Console’u açalım ve web servisimizi test edelim. Bu yazımda sadece HTTP isteklerinin örneğini yapacağım. Ama SOAP için örnek görmek isteyenler Trailhead’den bakabilir. Developer Console -> Debug -> Open Execute Anonymus Window u açalım ve aşağıdaki kodu alana kopyalayıp Execute butonuna basalım. Ekrana gelecek olan logda Debug Only seçeneğini seçtiğimizde Hello: Hello World yazısını JSON formatında görebilirsiniz.

Http http = new Http();
HttpRequest request = new HttpRequest();
request.setEndpoint('http://sleepy-fortress-56786.herokuapp.com/v1/api/hello');
request.setMethod('GET');
HttpResponse response = http.send(request);
if (response.getStatusCode() == 200) {
    System.debug(response.getBody());
}