Vertaald door AI. Nog niet door de community nagekeken. Lees in het Engels

Blog · 18 september 2023 · Steve Simpson · Integratie

Apex-webservice: bouwstenen voor webtovenaars

Inleiding:

In deze blogpost duik ik in het bouwen van aangepaste Apex-webservices in Salesforce. Die services zijn cruciaal als je een extern proces met Salesforce wilt laten werken om data op te halen of te schrijven, en de standaard REST API tekortschiet. We lopen vijf voorbeelden door, die geleidelijk complexer worden, van standaardquery’s tot updates.

Diagram: vijf voorbeelden van aangepaste Apex-webservices, aangeroepen vanuit Postman: GET die een lijst records teruggeeft, GET met een responsobject, GET met een parameter, POST, en POST met een fout

Overzicht van aangepaste webservices

We verkennen vijf voorbeelden van aangepaste webservices:

GET met een standaard SObject-lijst: Data ophalen met een standaard SObject-lijst.

Wrapper met JSON-antwoord: Het GET-request verbeteren door het in een JSON-antwoord te verpakken.

Parameters toevoegen: Parameters toevoegen aan het GET-request om specifiekere data op te halen.

POST gebruiken om in te voegen: Een POST-request implementeren om data in te voegen.

Foutmelding teruggeven: Foutmeldingen netjes afhandelen en teruggeven.

Aangepaste webservices implementeren

Voorbeeld 1: GET met een standaard SObject-lijst

In dit voorbeeld definiëren we een REST-resource met een aangepaste URI en geven we het HTTP-werkwoord (GET) op. De klasse moet als global gedeclareerd worden, en we geven met een eenvoudige query een lijst standaardaccounts terug.

Apex-code: een REST-resource met een GET-methode die accounts opvraagt en de lijst teruggeeft met standaardserialisatie

Voorbeeld 2: wrapper met JSON-antwoord

Om controle te hebben over de data die naar de client teruggaat, gebruiken we een responsobject. In plaats van een lijst SObjects geven we een lijst aangepaste responsobjecten terug, een lichte weergave van een klant met alleen de ID en de naam.

Apex-code: een GET-methode die een responsobject met een lijst klanten opbouwt

Voorbeeld 3: parameters toevoegen

Parameters zijn essentieel als je data voor een specifieke klant nodig hebt. Door RestContext.params te lezen, kun je de klant-ID ophalen en die gebruiken in de SOQL-WHERE-clausule om de data te filteren.

Apex-code: een GET-methode die een parameter customerid uit het request leest en die klant in een responsobject teruggeeft

Voorbeeld 4: POST gebruiken om in te voegen

Als je data moet schrijven, gebruik je een POST-methode. In dit voorbeeld maken we een responsobject en een requestobject. Het requestobject ontvangt een klant met een naam, en we gebruiken de JSON-serializer om het request naar een specifieke klasse te deserialiseren. Na het aanmaken en invoegen van een nieuw account wordt een successtatus teruggegeven.

Apex-code: een POST-methode die de body van het request parseert, een account invoegt en een succes- of foutstatus teruggeeft

Voorbeeld 5: foutmelding teruggeven

Dit voorbeeld lijkt op voorbeeld 4, maar bevat foutafhandeling. Bij een exception wordt de fout opgevangen, aan een lijst toegevoegd, en wordt de statuscode op 500 gezet (of elk ander getal dat je wilt).

Apex-code: de POST-methode met foutafhandeling, die de foutmelding en een HTTP-statuscode 500 teruggeeft

Conclusie

Met deze voorbeelden hebben we de basisbouwstenen laten zien voor het maken van aangepaste Apex-webservices in Salesforce. Beginnend met een eenvoudig GET-request hebben we de complexiteit geleidelijk verhoogd, met parameters, POST-requests en foutafhandeling.

Blijf op de hoogte

Bedankt voor het lezen, en ik kijk ernaar uit om binnenkort meer avonturen vol kennis met je te delen! Blijf op de hoogte hier op www.SteveTechArc.com en via het YouTube-kanaal @SteveTechArc (opens in a new tab). Abonneer je en verdiep je begrip van Salesforce en hoe je het met andere systemen kunt integreren.

De wereld helpen veranderen door integratiekennis te delen met collega-architecten en met iedereen die op weg is om architect te worden!

Transcript met hulp van AI

STA 1.8