Hent poster ved hjelp av Rest API i Salesforce

Hent Poster Ved Hjelp Av Rest Api I Salesforce



I denne veiledningen vil vi diskutere hvordan du henter Salesforce-postene med REST API gjennom Workbench i Salesforce. Som en del av denne veiledningen vil vi diskutere hvordan du bruker Workbench, henter spesifikke poster ved hjelp av sObject, og henter flere poster fra et objekt ved å bruke spørringen og henter poster ved å skrive Apex egendefinerte REST API. Vi vil bruke Salesforce Standard Case-objektet for demonstrasjon. Det er ikke nødvendig å opprette noen sakspost i Salesforce-støtten. Vi bruker den eksisterende standard saksposten som er levert av Salesforce.

Vi introduserer Workbench

Workbench er ikke et offisielt Salesforce.com-produkt. Men vi vil bruke Salesforce til å utføre datamanipuleringsoperasjonene som å velge, sette inn, sette inn, oppdatere og slette ved bare å logge på Salesforce-kontoen din (støtter både Sandbox og Production). Dette er den offisielle nettsiden for å logge på Workbench med Salesforce: https://workbench.developerforce.com/login.php .

Fra nå, hold API-versjonen som eksisterende, og klikk på 'Logg på med Salesforce'-knappen.









Vi trenger REST Explorer. Naviger til 'verktøy'-fanen og klikk på 'REST Explorer'.







Du vil se brukergrensesnittet som i følgende illustrasjon. Vi må velge GET for å hente postene fra Salesforce i hele denne veiledningen. Vi må spesifisere URIen som henter Salesforce-postene og klikke på 'Utfør'-knappen.



Hent spesifikk post med Salesforce ID

Basert på Salesforce-post-ID-en kan vi hente hele Salesforce-posten. Vi må angi URI som følger:

/ tjenester / data / v56.0 / sukter / objektAPI-navn / id

Her er 'objectAPIName' Salesforce Standard/Custom-objektet og 'id' refererer til Salesforce ID.

Komme tilbake:

Du vil få HTTP/1.1 200 OK råsvar i JSON-formatet som i følgende:

{
'attributter' : {
'type' :
'url' :
} ,
'felt' : Verdi,
...
}

Eksempel:

I dette eksemplet henter vi saksposten 5005i00000W4GM5AAN.

TYPE: / tjenester / data / v56.0 / sukter / Sak / 5005i00000W4GM5AAN

Resultat:

Vi kan se at svaret genereres i JSON-format.

Vi kan også se resultatene direkte herfra:

Hent flere poster med Query

Det er på tide å hente flere poster fra Salesforce-objektet. Tidligere spesifiserte vi subjektene i URIen. Her må vi spesifisere en spørring som tar spørringen som en parameter.

URI: tjenester / data / v57.0 / spørsmål / ? q =VELG+felt1,felt2,....+fra+ObjektAPInavn

Vi må bruke '+' som skilletegn for å slå sammen søkeordene i en spørring. Den returnerer totalSize og registrerer i en mappe. Mappenavnet for hver post er [Item 1],...[Item n].

Eksempel 1:
La oss returnere postene som inkluderer Saksnummer, status, prioritet og beskrivelse fra Saksobjektet.

/ tjenester / data / v57.0 / spørsmål / ? q =VELG+Saksnummer,Status,Prioritet,Beskrivelse+fra+Sak

Resultat:

Når du klikker på 'Utvid alle', vil du se alle postene med dens attributter og verdier.

La meg vise de første og siste postene:

Eksempel 2:
La oss bare returnere tre poster med de samme feltene som i det første eksemplet.

/ tjenester / data / v57.0 / spørsmål / ? q =VELG+Saksnummer,Status,Prioritet,Beskrivelse+fra+Saks+grense+ 2

Resultat:
De to første postene som finnes i Saksobjektet returneres.

Eksempel 3:
La oss spesifisere WHERE-betingelsen i spørringen som velger postene med 'Ny'-status.

/ tjenester / data / v57.0 / spørsmål / ? q =VELG+Saksnummer,Status,Prioritet,Beskrivelse+fra+Sak+hvor+ Status = 'Ny'

Resultat:

Det finnes fem poster med «Ny»-status.

Egendefinert hvileressurs i Apex

Vi kan bruke Salesforce Apex som returnerer posten fra Salesforce-objektet ved å spesifisere URI i Workbench. For å skrive REST i Apex, må vi bruke noen merknader som får tilgang til REST API i Apex-klassen din. Sørg for at Apex-klassen vår må være globalt statisk.

1. @RestResource Annotation

Denne merknaden brukes til å aktivere som viser en Apex-klasse som en REST-ressurs. Den tar urlMapping som en parameter som brukes til å finne URIen i Workbench.

Syntaks: @RestResource(urlMapping=’/Versjon/ApexClassName/’)

'Versjonen' er din Workbench-versjon som V56.0 og 'ApexClassName' er Apex-klassen din der Rest API-ressursene er involvert.

2. @HttpGet Annotation

Denne merknaden brukes til å aktivere som viser en Apex-klasse som en REST-ressurs. Det kalles når en HTTP GET-forespørsel sendes til serveren og returnerer den angitte ressursen.

Syntaks: @httpGet

Eksempel 1: Single Param

Skriv 'RestApi_Get_Record.apxc' Apex-klassen som involverer 'Rest Get'-metoden for å returnere ID, CaseNumber, status, prioritet og opprinnelse fra sak fra saksobjektet.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
global klasse RestApi_Get_Record {

// HVILE - Få metode
@ httpHent
global statisk sak getCaseDetails ( ) {

// Lag objekt til Saksobjekt
Sak case_obj = ny sak ( ) ;
Kart < String, String > paramsMap = RestContext.request.params;

// Hent sak id
String caseid =paramsMap.get ( 'input_id' ) ;

// SOQL-spørring som vil komme tilbake id ,Saksnummer,Status,Prioritet,Opprinnelse fra Sak fra
// Saksobjektet
case_obj = [ plukke ut id ,Saksnummer,Status,Prioritet,Opprinnelse fra sak hvor Id =:saksid ] ;
komme tilbake case_obj;
}
}

URI og resultat:

Gå til Workbench og naviger til REST Explorer. Send ID-en som 5002t00000Pdzr2AAB til input_id-parameteren.

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

Forklaring:

  • Opprett et objekt for «case_obj»-saken.
  • Få parameterne ved å bruke RestContext.request.params.
  • Hent saks-ID fra parameteren input_id og lagre dette i caseid-variabelen.
  • Skriv SOQL-spørringen som returnerer ID, CaseNumber, status, prioritet, opprinnelse fra sak fra saksobjektet til 'caseid'-saken.
  • Returner saksobjektet (case_obj).

Eksempel 2: Flere parametere

Bruk den forrige Apex-klassen og få 'Status'-parameteren sammen med ID-en. Spesifiser disse to parameterne i Workbench URI som er atskilt med '&'.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
global klasse RestApi_Get_Record {

// HVILE - Få metode
@ httpHent
global statisk sak getCaseDetails ( ) {

// Lag objekt til Saksobjekt
Sak case_obj = ny sak ( ) ;
Kart < String, String > id_param = RestContext.request.params;
Kart < String, String > status_param = RestContext.request.params;

// Få id_param inn i case_id
String case_id = id_param.get ( 'input_id' ) ;
// Få status_param inn i case_status
String case_status =status_param.get ( 'status' ) ;

case_obj = [ plukke ut id ,Saksnummer,Status,Prioritet,Opprinnelse fra sak hvor Id =:saksid og Status =: saksstatus ] ;
komme tilbake case_obj;
}
}

URI og resultat:

Gå til Workbench og naviger til REST Explorer. Send input_id som 5002t00000PdzqwAAB og statusen som 'Closed' i URI.

/ tjenester / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & status =Stengt

Konklusjon

Vi diskuterte tre scenarier for å hente Salesforce-postene gjennom Salesforce REST API ved å bruke Workbench. For å returnere en spesifikk post, må vi spesifisere sObject ved å sende id som parameter i URI. På samme måte sender vi spørringsparametrene for å få spesifikke poster. Ved å bruke Apex kan vi lage vår egen 'Get'-metode for å velge posten basert på enkelt-/flere parametere.