Hent poster ved hjælp af Rest API i Salesforce

Hent Poster Ved Hjaelp Af Rest Api I Salesforce



I denne vejledning vil vi diskutere, hvordan man henter Salesforce-posterne med REST API gennem Workbench i Salesforce. Som en del af denne vejledning vil vi diskutere, hvordan man bruger Workbench, henter specifikke poster ved hjælp af sObject og henter flere poster fra et objekt ved hjælp af forespørgslen og henter poster ved at skrive Apex brugerdefinerede REST API. Vi vil bruge Salesforce Standard Case-objektet til demonstration. Det er ikke nødvendigt at oprette en sagspost i Salesforce-backend. Vi bruger den eksisterende standardsagsjournal, der leveres af Salesforce.

Introduktion til Workbench

Workbench er ikke et officielt Salesforce.com-produkt. Men vi vil bruge Salesforce til at udføre datamanipulationshandlinger som at vælge, indsætte, ophæve, opdatere og slette ved blot at logge ind på din Salesforce-konto (understøtter både Sandbox og Production). Dette er den officielle hjemmeside for at logge på Workbench med Salesforce: https://workbench.developerforce.com/login.php .

Lige nu kun API-versionen som eksisterende, og klik på knappen 'Log på med Salesforce'.









Vi har brug for REST Explorer. Naviger til fanen 'Utilities', og klik på 'REST Explorer'.







Du vil se brugergrænsefladen som i den følgende illustration. Vi er nødt til at vælge GET for at hente posterne fra Salesforce i hele denne guide. Vi skal angive den URI, der henter Salesforce-posterne, og klikke på knappen 'Udfør'.



Hent specifik post med Salesforce ID

Baseret på Salesforce-post-id'et kan vi hente hele Salesforces post. Vi skal indstille URI'en som følger:

/ tjenester / data / v56.0 / tøver / objektAPINavn / id

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

Vend tilbage:

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

{
'egenskaber' : {
'type' :
'url' :
} ,
'Mark' : Værdi,
...
}

Eksempel:

I dette eksempel henter vi sagsposten 5005i00000W4GM5AAN.

TYPE: / tjenester / data / v56.0 / tøver / Sag / 5005i00000W4GM5AAN

Resultat:

Vi kan se, at svaret er genereret i JSON-format.

Vi kan også se resultaterne direkte herfra:

Hent flere poster med forespørgsel

Det er tid til at hente flere poster fra Salesforce-objektet. Tidligere specificerede vi sobjekterne i URI'en. Her skal vi specificere en forespørgsel, der tager forespørgslen som en parameter.

URI: tjenester / data / v57.0 / forespørgsel / ? q =SELECT+felt1,felt2,....+fra+ObjectAPIName

Vi skal bruge '+' som en afgrænsning for at forbinde søgeordene i en forespørgsel. Det returnerer totalSize og registrerer i en mappe. Mappenavnet for hver post er [Item 1],...[Item n].

Eksempel 1:
Lad os returnere de poster, der inkluderer sagsnummer, status, prioritet og beskrivelse fra sagsobjektet.

/ tjenester / data / v57.0 / forespørgsel / ? q =VÆLG+Sagsnummer,Status,Prioritet,Beskrivelse+fra+Sag

Resultat:

Når du klikker på 'Udvid alle', vil du se alle posterne med dens attributter og værdier.

Lad mig vise de første og sidste poster:

Eksempel 2:
Lad os kun returnere tre poster med de samme felter som i det første eksempel.

/ tjenester / data / v57.0 / forespørgsel / ? q =VÆLG+Sagsnummer,Status,Prioritet,Beskrivelse+fra+Sag+grænse+ 2

Resultat:
De første to poster, der er til stede i sagsobjektet, returneres.

Eksempel 3:
Lad os specificere WHERE-betingelsen i forespørgslen, der vælger posterne med statussen 'Ny'.

/ tjenester / data / v57.0 / forespørgsel / ? q =VÆLG+Sagsnummer,Status,Prioritet,Beskrivelse+fra+Sag+hvor+ Status = 'Ny'

Resultat:

Der findes fem poster med statussen 'Ny'.

Tilpasset hvileressource i Apex

Vi kan bruge Salesforce Apex, der returnerer posten fra Salesforce-objektet ved at angive URI'en i Workbench. For at skrive REST i Apex skal vi bruge nogle annoteringer, som får adgang til REST API i din Apex-klasse. Sørg for, at vores Apex-klasse skal være globalt statisk.

1. @RestResource Annotation

Denne annotation bruges til at aktivere, som afslører en Apex-klasse som en REST-ressource. Det tager urlMapping som en parameter, der bruges til at lokalisere URI'en i Workbench.

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

'Versionen' er din Workbench-version som V56.0, og 'ApexClassName' er din Apex-klasse, hvor Rest API-ressourcerne er involveret.

2. @HttpGet Annotation

Denne annotation bruges til at aktivere, som afslører en Apex-klasse som en REST-ressource. Det kaldes, når en HTTP GET-anmodning sendes til serveren og returnerer den angivne ressource.

Syntaks: @httpGet

Eksempel 1: Single Param

Skriv 'RestApi_Get_Record.apxc' Apex-klassen, der involverer 'Rest Get'-metoden for at returnere id, CaseNumber, status, prioritet og oprindelse fra sag fra sagsobjektet.

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

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

// Opret objekt til Sagsobjekt
Sag case_obj = ny sag ( ) ;
Kort < String, String > paramsMap = RestContext.request.params;

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

// SOQL-forespørgsel, der vil Vend tilbage id ,Sagsnummer,Status,Prioritet,Oprindelse fra Sag fra
// sagsobjektet
case_obj = [ Vælg id ,Sagsnummer,Status,Prioritet,Oprindelse fra sag hvor Id =:sagsid ] ;
Vend tilbage case_obj;
}
}

URI og resultat:

Gå til Workbench og naviger til REST Explorer. Send id'et som 5002t00000Pdzr2AAB til input_id param.

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

Forklaring:

  • Opret et objekt til sagen 'case_obj'.
  • Hent parametrene ved hjælp af RestContext.request.params.
  • Hent case-id'et fra parameteren input_id og gem dette i caseid-variablen.
  • Skriv SOQL-forespørgslen, der returnerer id'et, sagsnummeret, status, prioritet, oprindelse fra sag fra sagsobjektet i 'caseid'-sagen.
  • Returner sagsobjektet (case_obj).

Eksempel 2: Flere parametre

Brug den tidligere Apex-klasse og få 'Status'-parameteren sammen med id'et. Angiv disse to parametre i Workbench-URI'en, der er adskilt af '&'.

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

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

// Opret objekt til Sagsobjekt
Sag case_obj = ny sag ( ) ;
Kort < String, String > id_param = RestContext.request.params;
Kort < String, String > status_param = RestContext.request.params;

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

case_obj = [ Vælg id ,Sagsnummer,Status,Prioritet,Oprindelse fra sag hvor Id =:sagsid og Status =:sagsstatus ] ;
Vend tilbage case_obj;
}
}

URI og resultat:

Gå til Workbench og naviger til REST Explorer. Send input_id'et som 5002t00000PdzqwAAB og status som 'Lukket' i URI'en.

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

Konklusion

Vi diskuterede tre scenarier for at hente Salesforce-posterne gennem Salesforce REST API ved hjælp af Workbench. For at returnere en specifik post skal vi specificere sObject ved at sende id'et som parameter i URI'en. På samme måde videregiver vi forespørgselsparametrene for at få specifikke poster. Ved hjælp af Apex kan vi oprette vores egen 'Get'-metode til at vælge posten baseret på enkelte/flere parametre.