Dohvaćanje zapisa pomoću Rest API-ja u Salesforceu

Dohvacanje Zapisa Pomocu Rest Api Ja U Salesforceu



U ovom ćemo vodiču raspravljati o tome kako dohvatiti Salesforce zapise s REST API-jem kroz Workbench u Salesforceu. Kao dio ovog vodiča, raspravljat ćemo o tome kako koristiti Workbench, dohvaćati određene zapise pomoću sObject-a i dohvaćati više zapisa iz objekta pomoću upita i dohvaćanja zapisa pisanjem Apex prilagođenog REST API-ja. Za demonstraciju ćemo koristiti objekt Salesforce Standard Case. Nema potrebe za stvaranjem bilo kakvog zapisa slučaja u pozadini Salesforcea. Koristimo postojeću standardnu ​​evidenciju slučajeva koju osigurava Salesforce.

Predstavljamo Workbench

Workbench nije službeni proizvod Salesforce.com. Ali mi ćemo koristiti Salesforce za izvođenje operacija manipulacije podacima kao što su odabir, umetanje, postavljanje, ažuriranje i brisanje samom prijavom na vaš Salesforce račun (podržava i Sandbox i Production). Ovo je službena web stranica za prijavu na Workbench sa Salesforceom: https://workbench.developerforce.com/login.php .

Od sada, zadržite samo postojeću verziju API-ja i kliknite na gumb 'Prijava sa Salesforceom'.









Trebamo REST Explorer. Idite na karticu 'utilities' i kliknite na 'REST Explorer'.







Vidjet ćete UI kao na sljedećoj ilustraciji. Moramo odabrati GET za dohvaćanje zapisa iz Salesforcea u cijelom ovom vodiču. Moramo navesti URI koji dohvaća Salesforce zapise i kliknuti gumb 'Izvrši'.



Dohvaćanje određenog zapisa sa Salesforce ID-om

Na temelju ID-a Salesforce zapisa, možemo dohvatiti cijeli Salesforceov zapis. Moramo postaviti URI na sljedeći način:

/ usluge / podaci / v56.0 / subjekti / objectAPIName / iskaznica

Ovdje je 'objectAPIName' Salesforce Standard/Custom objekt, a 'id' se odnosi na Salesforce ID.

Povratak:

Dobit ćete neobrađeni odgovor HTTP/1.1 200 OK u JSON formatu kao što je prikazano u nastavku:

{
'atributi' : {
'tip' :
'url' :
} ,
'polje' : vrijednost,
...
}

Primjer:

U ovom primjeru dohvaćamo zapis slučaja 5005i00000W4GM5AAN.

TIP: / usluge / podaci / v56.0 / subjekti / Slučaj / 5005i00000W4GM5AAN

Proizlaziti:

Vidimo da je odgovor generiran u JSON formatu.

Također možemo vidjeti rezultate izravno odavde:

Dohvaćanje više zapisa pomoću upita

Vrijeme je da dohvatite više zapisa iz Salesforce objekta. Prethodno smo naveli objekte u URI-ju. Ovdje moramo navesti upit koji uzima upit kao parametar.

URI: usluge / podaci / v57.0 / upit / ? q =SELECT+field1,field2,....+from+ObjectAPIName

Moramo koristiti '+' kao razdjelnik za spajanje ključnih riječi u upitu. Vraća totalSize i bilježi u mapu. Naziv mape za svaki zapis je [Stavka 1],…[Stavka n].

Primjer 1:
Vratimo zapise koji uključuju CaseNumber, status, prioritet i opis iz objekta Case.

/ usluge / podaci / v57.0 / upit / ? q =SELECT+Broj slučaja,Status,Prioritet,Opis+iz+Slučaja

Proizlaziti:

Kada kliknete na “Proširi sve”, vidjet ćete sve zapise sa svojim atributima i vrijednostima.

Da pokažem prvi i zadnji zapis:

Primjer 2:
Vratimo samo tri zapisa s istim poljima kao što smo vidjeli u prvom primjeru.

/ usluge / podaci / v57.0 / upit / ? q =SELECT+Broj predmeta,Status,Prioritet,Opis+iz+Ograničenje+slučaja+ 2

Proizlaziti:
Vraćaju se prva dva zapisa koja su prisutna u objektu Case.

Primjer 3:
Navedimo uvjet WHERE u upitu koji odabire zapise sa statusom 'Novo'.

/ usluge / podaci / v57.0 / upit / ? q =SELECT+CaseNumber,Status,Priority,Description+from+Case+where+ Status = 'Novi'

Proizlaziti:

Postoji pet zapisa sa statusom 'Novo'.

Prilagođeni resurs za odmor u Apexu

Možemo upotrijebiti Salesforce Apex koji vraća zapis iz Salesforce objekta navođenjem URI-ja u Workbench-u. Da bismo napisali REST u Apexu, moramo upotrijebiti neke bilješke koje pristupaju REST API-ju u vašoj Apex klasi. Provjerite mora li naša Apex klasa biti globalno statična.

1. Bilješka @RestResource

Ova se napomena koristi za omogućavanje koja izlaže Apex klasu kao REST resurs. Uzima urlMapping kao parametar koji se koristi za lociranje URI-ja u Workbench-u.

Sintaksa: @RestResource(urlMapping=’/Version/ApexClassName/’)

'Verzija' je vaša verzija Workbench-a kao što je V56.0, a 'ApexClassName' je vaša Apex klasa u koju su uključeni Rest API resursi.

2. @HttpGet Annotation

Ova se napomena koristi za omogućavanje koja izlaže Apex klasu kao REST resurs. Poziva se kada je HTTP GET zahtjev poslan poslužitelju i vraća navedeni resurs.

Sintaksa: @httpGet

Primjer 1: Pojedinačni param

Napišite Apex klasu “RestApi_Get_Record.apxc” koja uključuje metodu “Rest Get” za vraćanje id-a, CaseNumber-a, statusa, prioriteta i porijekla iz slučaja iz objekta Case.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
globalna klasa RestApi_Get_Record {

// REST - Dobiti metodu
@ httpDohvati
globalni statički Case getCaseDetails ( ) {

// Stvori objekt za Padežni objekt
Slučaj case_obj = novi slučaj ( ) ;
Karta < Niz, niz > paramsMap = RestContext.request.params;

// Dobiti slučaj iskaznica
Niz caseid =paramsMap.get ( 'input_id' ) ;

// SOQL upit koji će povratak iskaznica ,CaseNumber,Status,Priority,Origin from Case from
// objekt Case
case_obj = [ Izaberi iskaznica ,CaseNumber,Status,Priority,Origin from Case where Id =:caseid ] ;
povratak case_obj;
}
}

URI i rezultat:

Idite na Workbench i idite na REST Explorer. Proslijedite ID kao 5002t00000Pdzr2AAB parametru input_id.

/ usluge / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Obrazloženje:

  • Stvorite objekt za slučaj 'case_obj'.
  • Dobijte parametre koristeći RestContext.request.params.
  • Dobijte ID slučaja iz parametra input_id i pohranite ga u varijablu caseid.
  • Napišite SOQL upit koji vraća id, CaseNumber, status, prioritet, porijeklo iz slučaja iz Case objekta slučaja 'caseid'.
  • Vrati objekt case (case_obj).

Primjer 2: Višestruki parametri

Upotrijebite prethodnu klasu Apex i uzmite parametar 'Status' zajedno s ID-om. Navedite ova dva parametra u Workbench URI-ju koji je odvojen znakom '&'.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
globalna klasa RestApi_Get_Record {

// REST - Dobiti metodu
@ httpDohvati
globalni statički Case getCaseDetails ( ) {

// Stvori objekt za Padežni objekt
Slučaj case_obj = novi slučaj ( ) ;
Karta < Niz, niz > id_param = RestContext.request.params;
Karta < Niz, niz > status_param = RestContext.request.params;

// Stavite id_param u case_id
Niz case_id = id_param.get ( 'input_id' ) ;
// Dobijte status_param u case_status
String case_status =status_param.get ( 'status' ) ;

case_obj = [ Izaberi iskaznica ,CaseNumber,Status,Priority,Origin from Case where Id =:case_id and Status =: case_status ] ;
povratak case_obj;
}
}

URI i rezultat:

Idite na Workbench i idite na REST Explorer. Proslijedite input_id kao 5002t00000PdzqwAAB i status kao 'Zatvoreno' u URI-ju.

/ usluge / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB i status =Zatvoreno

Zaključak

Razgovarali smo o tri scenarija dohvaćanja Salesforce zapisa putem Salesforce REST API-ja pomoću Workbench-a. Da bismo vratili određeni zapis, moramo navesti sObject prosljeđivanjem ID-a kao parametra u URI-ju. Slično tome, prosljeđujemo parametre upita da bismo dobili određene zapise. Koristeći Apex, možemo stvoriti vlastitu metodu 'Get' za odabir zapisa na temelju jednog/više parametara.