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 / iskaznicaOvdje 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 / 5005i00000W4GM5AANProizlaziti:
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+ObjectAPINameMoramo 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.
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.
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'.
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.