Hämta poster med Rest API i Salesforce

Hamta Poster Med Rest Api I Salesforce



I den här guiden kommer vi att diskutera hur man hämtar Salesforce-posterna med REST API genom Workbench i Salesforce. Som en del av den här guiden kommer vi att diskutera hur man använder Workbench, hämta specifika poster med sObject och hämta flera poster från ett objekt med hjälp av frågan och hämta poster genom att skriva Apex anpassade REST API. Vi kommer att använda Salesforce Standard Case-objektet för demonstration. Det finns inget behov av att skapa någon ärendepost i Salesforces backend. Vi använder den befintliga standardärendeposten som tillhandahålls av Salesforce.

Vi presenterar Workbench

Workbench är inte en officiell Salesforce.com-produkt. Men vi kommer att använda Salesforce för att utföra datamanipuleringsoperationer som att välja, infoga, lägga upp, uppdatera och ta bort genom att bara logga in på ditt Salesforce-konto (stöder både Sandbox och Production). Detta är den officiella webbplatsen för att logga in Workbench med Salesforce: https://workbench.developerforce.com/login.php .

Från och med nu, behåll API-versionen som endast befintlig och klicka på knappen 'Logga in med Salesforce'.









Vi behöver REST Explorer. Navigera till fliken 'Utilities' och klicka på 'REST Explorer'.







Du kommer att se användargränssnittet som i följande illustration. Vi måste välja GET för att hämta posterna från Salesforce i hela den här guiden. Vi måste ange den URI som hämtar Salesforce-posterna och klicka på knappen 'Execute'.



Hämta specifik post med Salesforce ID

Baserat på Salesforces post-ID kan vi hämta hela Salesforces post. Vi måste ställa in URI enligt följande:

/ tjänster / data / v56.0 / snyftar / objektAPInamn / id

Här är 'objectAPIName' Salesforce Standard/Custom-objektet och 'id' refererar till Salesforce ID.

Lämna tillbaka:

Du kommer att få råsvaret HTTP/1.1 200 OK i JSON-formatet som i följande:

{
'attribut' : {
'typ' :
'url' :
} ,
'fält' : Värde,
...
}

Exempel:

I det här exemplet hämtar vi ärendeposten 5005i00000W4GM5AAN.

TYP: / tjänster / data / v56.0 / snyftar / Fall / 5005i00000W4GM5AAN

Resultat:

Vi kan se att svaret genereras i JSON-format.

Vi kan också se resultaten direkt härifrån:

Hämta flera poster med Query

Det är dags att hämta flera poster från Salesforce-objektet. Tidigare har vi angett subjekten i URI:n. Här måste vi specificera en fråga som tar frågan som en parameter.

URI: tjänster / data / v57.0 / fråga / ? q =VÄLJ+fält1,fält2,....+från+ObjektAPInamn

Vi måste använda '+' som avgränsare för att sammanfoga sökorden i en fråga. Det returnerar totalSize och registrerar i en mapp. Mappnamnet för varje post är [Artikel 1],...[Artikel n].

Exempel 1:
Låt oss returnera de poster som inkluderar CaseNumber, status, prioritet och beskrivning från Case-objektet.

/ tjänster / data / v57.0 / fråga / ? q =VÄLJ+Ärendenummer,Status,Prioritet,Beskrivning+från+Ärende

Resultat:

När du klickar på 'Expandera alla' kommer du att se alla poster med dess attribut och värden.

Låt mig visa de första och sista posterna:

Exempel 2:
Låt oss bara returnera tre poster med samma fält som i det första exemplet.

/ tjänster / data / v57.0 / fråga / ? q =VÄLJ+Ärendenummer,Status,Prioritet,Beskrivning+från+Ärende+gräns+ 2

Resultat:
De två första posterna som finns i Case-objektet returneras.

Exempel 3:
Låt oss ange WHERE-villkoret i frågan som väljer posterna med statusen 'Ny'.

/ tjänster / data / v57.0 / fråga / ? q =VÄLJ+Ärendenummer,Status,Prioritet,Beskrivning+från+Ärende+var+ Status = 'Ny'

Resultat:

Det finns fem poster med statusen 'Ny'.

Anpassad restresurs i Apex

Vi kan använda Salesforce Apex som returnerar posten från Salesforce-objektet genom att ange URI i Workbench. För att skriva REST i Apex måste vi använda några anteckningar som kommer åt REST API i din Apex-klass. Se till att vår Apex-klass måste vara globalt statisk.

1. @RestResource Annotation

Den här anteckningen används för att aktivera som exponerar en Apex-klass som en REST-resurs. Den tar urlMapping som en parameter som används för att lokalisera URI:n i Workbench.

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

'Versionen' är din Workbench-version som V56.0 och 'ApexClassName' är din Apex-klass där Rest API-resurserna är inblandade.

2. @HttpGet Annotation

Den här anteckningen används för att aktivera som exponerar en Apex-klass som en REST-resurs. Den anropas när en HTTP GET-begäran skickas till servern och returnerar den angivna resursen.

Syntax: @httpGet

Exempel 1: Single Param

Skriv 'RestApi_Get_Record.apxc' Apex-klassen som involverar metoden 'Rest Get' för att returnera id, CaseNumber, status, prioritet och ursprung från case från Case-objektet.

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

// REST - Get Method
@ httpHämta
global static Case getCaseDetails ( ) {

// Skapa objekt för Fallobjekt
Fall case_obj = nytt fall ( ) ;
Karta < String, String > paramsMap = RestContext.request.params;

// Få den fall id
Sträng caseid =paramsMap.get ( 'input_id' ) ;

// SOQL-fråga som kommer lämna tillbaka id ,CaseNumber,Status,Priority,Ursprung från Case from
// Case-objektet
case_obj = [ Välj id ,CaseNumber,Status,Priority,Ursprung från Fall där Id =:caseid ] ;
lämna tillbaka case_obj;
}
}

URI och resultat:

Gå till Workbench och navigera till REST Explorer. Skicka id som 5002t00000Pdzr2AAB till input_id param.

/ tjänster / spetsstöd / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Förklaring:

  • Skapa ett objekt för 'case_obj'-fallet.
  • Hämta parametrarna med hjälp av RestContext.request.params.
  • Hämta case-id från parametern input_id och lagra detta i caseid-variabeln.
  • Skriv SOQL-frågan som returnerar id, CaseNumber, status, prioritet, ursprung från case från Case-objektet i 'caseid'-fallet.
  • Returnera fallobjektet (case_obj).

Exempel 2: Flera parametrar

Använd den tidigare Apex-klassen och få 'Status'-parametrar tillsammans med ID:t. Ange dessa två parametrar i Workbench-URI:n som är åtskilda av '&'.

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

// REST - Get Method
@ httpHämta
global static Case getCaseDetails ( ) {

// Skapa objekt för Fallobjekt
Fall case_obj = nytt fall ( ) ;
Karta < String, String > id_param = RestContext.request.params;
Karta < String, String > status_param = RestContext.request.params;

// Hämta id_param till case_id
Sträng case_id = id_param.get ( 'input_id' ) ;
// Hämta status_param till case_status
String case_status =status_param.get ( 'status' ) ;

case_obj = [ Välj id ,CaseNumber,Status,Priority,Ursprung från ärende där Id =:case_id och Status =: case_status ] ;
lämna tillbaka case_obj;
}
}

URI och resultat:

Gå till Workbench och navigera till REST Explorer. Ange input_id som 5002t00000PdzqwAAB och statusen som 'Stängd' i URI:n.

/ tjänster / spetsstöd / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & status =Stängt

Slutsats

Vi diskuterade tre scenarier för att hämta Salesforce-posterna genom Salesforce REST API med Workbench. För att returnera en specifik post måste vi specificera sObject genom att skicka id som parameter i URI:n. På samma sätt skickar vi frågeparametrarna för att få specifika poster. Med Apex kan vi skapa vår egen 'Hämta' -metod för att välja posten baserat på enstaka/flera parametrar.