Pobieranie rekordów za pomocą Rest API w Salesforce

Pobieranie Rekordow Za Pomoca Rest Api W Salesforce



W tym przewodniku omówimy, jak pobrać rekordy Salesforce za pomocą interfejsu API REST za pośrednictwem Workbench w Salesforce. W ramach tego przewodnika omówimy, jak używać Workbencha, pobierać określone rekordy za pomocą sObject i pobierać wiele rekordów z obiektu za pomocą zapytania i pobierać rekordy, pisząc niestandardowe API REST Apex. Do demonstracji wykorzystamy obiekt Salesforce Standard Case. Nie ma potrzeby tworzenia żadnego rekordu sprawy w backendzie Salesforce. Używamy istniejącego standardowego rekordu sprawy, który jest dostarczany przez Salesforce.

Przedstawiamy Workbencha

Workbench nie jest oficjalnym produktem Salesforce.com. Będziemy jednak wykorzystywać Salesforce do wykonywania operacji manipulacji danymi, takich jak wybieranie, wstawianie, upsert, aktualizacja i usuwanie, po prostu logując się na konto Salesforce (obsługuje zarówno piaskownicę, jak i produkcję). To jest oficjalna strona do logowania Workbench z Salesforce: https://workbench.developerforce.com/login.php .

Na razie zachowaj tylko istniejącą wersję API i kliknij przycisk „Zaloguj się za pomocą Salesforce”.









Potrzebujemy Eksploratora REST. Przejdź do zakładki „narzędzia” i kliknij „REST Explorer”.







Zobaczysz interfejs użytkownika, jak na poniższej ilustracji. Musimy wybrać GET, aby pobrać rekordy z Salesforce w całym tym przewodniku. Musimy określić URI, który pobiera rekordy Salesforce i kliknąć przycisk „Wykonaj”.



Pobierz określony rekord z identyfikatorem Salesforce

Na podstawie identyfikatora rekordu Salesforce możemy pobrać cały rekord Salesforce. Musimy ustawić URI w następujący sposób:

/ usługi / dane / v56.0 / przedmioty / nazwaAPINobiektu / ID

Tutaj „objectAPIName” to obiekt Salesforce Standard/Custom, a „id” odnosi się do identyfikatora Salesforce.

Powrót:

Otrzymasz surową odpowiedź HTTP/1.1 200 OK w formacie JSON, jak poniżej:

{
„atrybuty” : {
'typ' :
„URL” :
} ,
'pole' : Wartość,
...
}

Przykład:

W tym przykładzie pobieramy rekord sprawy 5005i00000W4GM5AAN.

TYP: / usługi / dane / v56.0 / przedmioty / Sprawa / 5005i00000W4GM5AAN

Wynik:

Widzimy, że odpowiedź jest generowana w formacie JSON.

Wyniki możemy również przeglądać bezpośrednio stąd:

Pobierz wiele rekordów za pomocą zapytania

Czas pobrać wiele rekordów z obiektu Salesforce. Poprzednio określaliśmy obiekty w identyfikatorze URI. Tutaj musimy określić zapytanie, które przyjmuje zapytanie jako parametr.

URI: usługi / dane / v57.0 / zapytanie / ? Q =WYBIERZ+pole1,pole2,....+z+NazwaAPINobiektu

Musimy użyć znaku „+” jako separatora, aby połączyć słowa kluczowe w zapytaniu. Zwraca totalSize i rekordy w folderze. Nazwa folderu dla każdego rekordu to [Pozycja 1],…[Pozycja n].

Przykład 1:
Zwróćmy rekordy zawierające CaseNumber, status, priorytet i opis z obiektu Case.

/ usługi / dane / v57.0 / zapytanie / ? Q =WYBIERZ+Numer sprawy,Stan,Priorytet,Opis+z+Sprawy

Wynik:

Po kliknięciu „Rozwiń wszystko” zobaczysz wszystkie rekordy wraz z ich atrybutami i wartościami.

Pokażę pierwszy i ostatni rekord:

Przykład 2:
Zwróćmy tylko trzy rekordy z tymi samymi polami, co w pierwszym przykładzie.

/ usługi / dane / v57.0 / zapytanie / ? Q =WYBIERZ+Numer sprawy,Stan,Priorytet,Opis+z+Sprawy+limit+ 2

Wynik:
Zwracane są dwa pierwsze rekordy obecne w obiekcie Case.

Przykład 3:
Określmy warunek WHERE w zapytaniu, które wybiera rekordy ze statusem „Nowy”.

/ usługi / dane / v57.0 / zapytanie / ? Q =WYBIERZ+Numer sprawy,Stan,Priorytet,Opis+z+Sprawy+gdzie+ Status = 'Nowy'

Wynik:

Istnieje pięć rekordów ze statusem „Nowy”.

Niestandardowy zasób odpoczynku w Apex

Możemy wykorzystać Salesforce Apex, który zwraca rekord z obiektu Salesforce, określając URI w Workbench. Aby napisać REST w Apex, musimy wykorzystać pewne adnotacje, które uzyskują dostęp do API REST w twojej klasie Apex. Upewnij się, że nasza klasa Apex musi być globalnie statyczna.

1. Adnotacja @RestResource

Ta adnotacja służy do włączania, która udostępnia klasę Apex jako zasób REST. Przyjmuje urlMapping jako parametr używany do zlokalizowania identyfikatora URI w Środowisku roboczym.

Składnia: @RestResource(urlMapping=’/Version/ApexClassName/’)

„Wersja” to Twoja wersja Workbench, taka jak V56.0, a „ApexClassName” to Twoja klasa Apex, w której zaangażowane są zasoby Rest API.

2. Adnotacja @HttpGet

Ta adnotacja służy do włączania, która udostępnia klasę Apex jako zasób REST. Jest wywoływana, gdy żądanie HTTP GET jest wysyłane do serwera i zwraca określony zasób.

Składnia: @httpGet

Przykład 1: Pojedynczy parametr

Napisz klasę Apex „RestApi_Get_Record.apxc”, która zawiera metodę „Rest Get” zwracającą identyfikator, numer sprawy, status, priorytet i pochodzenie sprawy z obiektu Case.

@ Zasób odpoczynku ( mapowanie adresów URL = '/v56.0/RestApi_Get_Record/' )
klasa globalna RestApi_Get_Record {

// REST — Pobierz metodę
@ httpPobierz
globalna statyczna sprawa getCaseDetails ( ) {

// Utwórz obiekt Do Obiekt sprawy
Sprawa case_obj = nowa sprawa ( ) ;
Mapa < Ciąg, ciąg > paramsMap = RestContext.request.params;

// Uzyskać sprawa ID
Ciąg znaków caseid =paramsMap.get ( „identyfikator_wejściowy” ) ;

// Zapytanie SOQL, które będzie powrót ID ,Numer sprawy,Status,Priorytet,Pochodzenie ze Sprawa od
// obiekt Sprawa
obiekt_sprawy = [ wybierać ID ,Numer sprawy,Status,Priorytet,Pochodzenie ze sprawy, gdzie Id =:identyfikator sprawy ] ;
powrót sprawa_obj;
}
}

Identyfikator URI i wynik:

Przejdź do Workbench i przejdź do Eksploratora REST. Przekaż identyfikator jako 5002t00000Pdzr2AAB do parametru input_id.

/ usługi / wierzchołek / v56.0 / RestApi_Get_Record / ? identyfikator_wejściowy =5002t00000Pdzr2AAB

Wyjaśnienie:

  • Utwórz obiekt dla sprawy „case_obj”.
  • Pobierz parametry za pomocą pliku RestContext.request.params.
  • Pobierz identyfikator sprawy z parametru input_id i zapisz go w zmiennej caseid.
  • Napisz zapytanie SOQL, które zwraca id, CaseNumber, status, priorytet, pochodzenie ze sprawy z obiektu Case sprawy „caseid”.
  • Zwróć obiekt sprawy (case_obj).

Przykład 2: Wiele parametrów

Wykorzystaj poprzednią klasę Apex i uzyskaj parametr „Status” wraz z identyfikatorem. Określ te dwa parametry w identyfikatorze URI Workbench, który jest oddzielony znakiem „&”.

@ Zasób odpoczynku ( mapowanie adresów URL = '/v56.0/RestApi_Get_Record/' )
klasa globalna RestApi_Get_Record {

// REST — Pobierz metodę
@ httpPobierz
globalna statyczna sprawa getCaseDetails ( ) {

// Utwórz obiekt Do Obiekt sprawy
Sprawa case_obj = nowa sprawa ( ) ;
Mapa < Ciąg, ciąg > id_param = RestContext.request.params;
Mapa < Ciąg, ciąg > parametr_statusu = RestContext.request.params;

// Pobierz id_param do case_id
Ciąg case_id = id_param.get ( „identyfikator_wejściowy” ) ;
// Pobierz status_param do case_status
Ciąg case_status =status_param.get ( 'status' ) ;

obiekt_sprawy = [ wybierać ID ,Numer sprawy,Status,Priorytet,Pochodzenie ze sprawy, gdzie Id =:id_sprawy i Status =:status_sprawy ] ;
powrót sprawa_obj;
}
}

Identyfikator URI i wynik:

Przejdź do Workbench i przejdź do Eksploratora REST. Przekaż input_id jako 5002t00000PdzqwAAB i status jako „Closed” w identyfikatorze URI.

/ usługi / wierzchołek / v56.0 / RestApi_Get_Record / ? identyfikator_wejściowy =5002t00000PdzqwAAB & status =Zamknięte

Wniosek

Omówiliśmy trzy scenariusze pobierania rekordów Salesforce przez Salesforce REST API przy użyciu Workbencha. Aby zwrócić określony rekord, musimy określić sObject, przekazując id jako parametr w URI. Podobnie przekazujemy parametry zapytania, aby uzyskać określone rekordy. Korzystając z Apex, możemy stworzyć własną metodę „Get”, aby wybrać rekord na podstawie jednego/wielu parametrów.