Records ophalen met Rest API in Salesforce

Records Ophalen Met Rest Api In Salesforce



In deze handleiding bespreken we hoe u de Salesforce-records kunt ophalen met REST API via Workbench in Salesforce. Als onderdeel van deze handleiding bespreken we het gebruik van Workbench, het ophalen van specifieke records met sObject en het ophalen van meerdere records van een object met behulp van de query en het ophalen van records door de Apex aangepaste REST API te schrijven. We zullen het Salesforce Standard Case-object gebruiken voor demonstratie. Het is niet nodig om een ​​caserecord te maken in de Salesforce-backend. We gebruiken het bestaande standaard case-record dat wordt geleverd door Salesforce.

Maak kennis met Werkbank

Workbench is geen officieel Salesforce.com-product. Maar we zullen Salesforce gebruiken om de bewerkingen voor gegevensmanipulatie uit te voeren, zoals selecteren, invoegen, upsert, bijwerken en verwijderen door gewoon in te loggen op uw Salesforce-account (ondersteunt zowel Sandbox als Productie). Dit is de officiële website om in te loggen op Workbench met Salesforce: https://workbench.developerforce.com/login.php .

Houd vanaf nu de API-versie als alleen bestaande en klik op de knop 'Inloggen met Salesforce'.









We hebben de REST Explorer nodig. Navigeer naar het tabblad 'hulpprogramma's' en klik op 'REST Explorer'.







U ziet de gebruikersinterface zoals in de volgende afbeelding. We moeten GET kiezen om de records van Salesforce in deze hele gids op te halen. We moeten de URI specificeren die de Salesforce-records ophaalt en op de knop 'Uitvoeren' klikken.



Specifiek record ophalen met Salesforce-ID

Op basis van de Salesforce-record-ID kunnen we de volledige record van Salesforce ophalen. We moeten de URI als volgt instellen:

/ Diensten / gegevens / v56.0 / objecten / objectAPINaam / ID kaart

Hier is de 'objectAPIName' het Salesforce Standard/Custom-object en verwijst de 'id' naar de Salesforce-ID.

Opbrengst:

U krijgt het HTTP/1.1 200 OK onbewerkte antwoord in het JSON-formaat zoals in het volgende:

{
'attributen' : {
'type' :
'URL' :
} ,
'veld' : Waarde,
...
}

Voorbeeld:

In dit voorbeeld halen we het zaakrecord 5005i00000W4GM5AAN op.

TYPE: / Diensten / gegevens / v56.0 / objecten / Geval / 5005i00000W4GM5AAN

Resultaat:

We kunnen zien dat het antwoord wordt gegenereerd in JSON-indeling.

We kunnen de resultaten ook rechtstreeks vanaf hier bekijken:

Haal meerdere records op met Query

Het is tijd om meerdere records op te halen uit het Salesforce-object. Voorheen specificeerden we de sobjects in de URI. Hier moeten we een query specificeren die de query als parameter neemt.

URI: diensten / gegevens / v57.0 / vraag / ? Q =SELECT+veld1,veld2,....+van+ObjectAPINaam

We moeten '+' als scheidingsteken gebruiken om de zoekwoorden in een zoekopdracht samen te voegen. Het retourneert de totalSize en registreert in een map. De mapnaam voor elke record is [Item 1],...[Item n].

Voorbeeld 1:
Laten we de records retourneren die het CaseNumber, de status, de prioriteit en de beschrijving van het Case-object bevatten.

/ Diensten / gegevens / v57.0 / vraag / ? Q =SELECT+Casenummer,Status,Prioriteit,Beschrijving+van+Case

Resultaat:

Wanneer u op 'Alles uitvouwen' klikt, ziet u alle records met de bijbehorende attributen en waarden.

Laat me de eerste en laatste records tonen:

Voorbeeld 2:
Laten we slechts drie records retourneren met dezelfde velden als in het eerste voorbeeld.

/ Diensten / gegevens / v57.0 / vraag / ? Q =SELECT+CaseNummer,Status,Prioriteit,Beschrijving+from+Case+limit+ 2

Resultaat:
De eerste twee records die aanwezig zijn in het Case-object worden geretourneerd.

Voorbeeld 3:
Laten we de WHERE-voorwaarde specificeren in de query die de records met de status 'Nieuw' selecteert.

/ Diensten / gegevens / v57.0 / vraag / ? Q =SELECT+Casenummer,Status,Prioriteit,Beschrijving+from+Case+where+ Toestand = 'Nieuw'

Resultaat:

Er zijn vijf records met de status 'Nieuw'.

Aangepaste rustbron in Apex

We kunnen de Salesforce Apex gebruiken die het record van het Salesforce-object retourneert door de URI in de Workbench op te geven. Om REST in Apex te schrijven, moeten we enkele annotaties gebruiken die toegang hebben tot de REST API in uw Apex-klasse. Zorg ervoor dat onze Apex-klasse globaal statisch moet zijn.

1. @RestResource-annotatie

Deze annotatie wordt gebruikt om een ​​Apex-klasse in te schakelen als een REST-resource. Het neemt de urlMapping als een parameter die wordt gebruikt om de URI in de Workbench te lokaliseren.

Syntaxis: @RestResource(urlMapping=’/Versie/ApexClassName/’)

De 'versie' is uw Workbench-versie zoals V56.0 en de 'ApexClassName' is uw Apex-klasse waar de Rest API-bronnen bij betrokken zijn.

2. @HttpGet-annotatie

Deze annotatie wordt gebruikt om een ​​Apex-klasse in te schakelen als een REST-resource. Het wordt aangeroepen wanneer een HTTP GET-verzoek naar de server wordt verzonden en de opgegeven bron retourneert.

Syntaxis: @httpGet

Voorbeeld 1: enkele param

Schrijf de Apex-klasse 'RestApi_Get_Record.apxc' die de methode 'Rest Get' gebruikt om de id, CaseNumber, status, prioriteit en oorsprong van case uit het Case-object te retourneren.

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

// REST - Get-methode
@ httpGet
globale statische Case getCaseDetails ( ) {

// Voorwerp maken voor Case-object
Zaak case_obj = nieuwe zaak ( ) ;
Kaart < String, String > paramsMap = RestContext.verzoek.params;

// Pak de geval ID kaart
String caseid =paramsMap.get ( 'invoer_id' ) ;

// SOQL-query die zal opbrengst ID kaart ,Zaaknummer,Status,Prioriteit,Oorsprong van Zaak van
// het Case-object
case_obj = [ selecteren ID kaart ,CaseNumber,Status,Priority,Origin from Case waarbij Id =:caseid ] ;
opbrengst case_obj;
}
}

URI en resultaat:

Ga naar Workbench en navigeer naar de REST Explorer. Geef de id door als 5002t00000Pdzr2AAB aan de parameter input_id.

/ Diensten / toprust / v56.0 / RestApi_Get_Record / ? invoer_id =5002t00000Pdzr2AAB

Uitleg:

  • Maak een object voor de zaak 'case_obj'.
  • Haal de parameters op met behulp van RestContext.request.params.
  • Haal de case-id op uit de parameter input_id en sla deze op in de caseid-variabele.
  • Schrijf de SOQL-query die de id, CaseNumber, status, prioriteit, oorsprong van case uit het Case-object van de 'caseid'-case retourneert.
  • Retourneer het case-object (case_obj).

Voorbeeld 2: meerdere parameters

Gebruik de vorige Apex-klasse en verkrijg de 'Status' -parameter samen met de id. Geef deze twee parameters op in de Workbench-URI die wordt gescheiden door '&'.

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

// REST - Get-methode
@ httpGet
globale statische Case getCaseDetails ( ) {

// Voorwerp maken voor Case-object
Zaak case_obj = nieuwe zaak ( ) ;
Kaart < String, String > id_param = RestContext.request.params;
Kaart < String, String > status_param = RestContext.request.params;

// Zet de id_param in de case_id
String case_id = id_param.get ( 'invoer_id' ) ;
// Zet de status_param in de case_status
String case_status =status_param.get ( 'toestand' ) ;

case_obj = [ selecteren ID kaart ,CaseNumber,Status,Priority,Origin from Case waarbij Id =:case_id en Status =: case_status ] ;
opbrengst case_obj;
}
}

URI en resultaat:

Ga naar Workbench en navigeer naar de REST Explorer. Geef de input_id door als 5002t00000PdzqwAAB en de status als 'Closed' in de URI.

/ Diensten / toprust / v56.0 / RestApi_Get_Record / ? invoer_id =5002t00000PdzqwAAB & toestand =Gesloten

Conclusie

We hebben drie scenario's besproken voor het ophalen van de Salesforce-records via Salesforce REST API met behulp van Workbench. Om een ​​specifiek record te retourneren, moeten we het sObject specificeren door de id als parameter in de URI door te geven. Op dezelfde manier geven we de queryparameters door om specifieke records te krijgen. Met behulp van Apex kunnen we onze eigen 'Get' -methode maken om de record te selecteren op basis van enkele/meerdere parameters.