Tradotto con l'IA. Non ancora rivisto dalla comunità. Leggi in inglese

Blog · 18 settembre 2023 · Steve Simpson · Integrazione

Servizi web Apex: i mattoni per i maghi del web

Introduzione:

In questo articolo approfondirò la costruzione di servizi web Apex personalizzati in Salesforce. Questi servizi sono fondamentali quando serve che un processo esterno interagisca con Salesforce per leggere o scrivere dati e l’API REST standard non basta. Vedremo cinque esempi di complessità crescente, dalle query standard agli aggiornamenti.

Diagramma: cinque esempi di servizi web Apex personalizzati chiamati da Postman: GET che restituisce un elenco di record, GET con oggetto di risposta, GET con parametro, POST e POST con errore

Panoramica dei servizi web personalizzati

Esploreremo cinque esempi di servizi web personalizzati:

GET con un elenco di SObject standard: recuperare i dati con un elenco di SObject standard.

Wrapper con risposta JSON: migliorare la richiesta GET racchiudendola in una risposta JSON.

Aggiunta di parametri: aggiungere parametri alla richiesta GET per recuperare dati più specifici.

POST per l’inserimento: implementare una richiesta POST per inserire dati.

Restituzione dei messaggi di errore: gestire e restituire correttamente i messaggi di errore.

Implementare servizi web personalizzati

Esempio 1: GET con un elenco di SObject standard

In questo esempio definiamo una risorsa REST con un URI personalizzato e specifichiamo il verbo HTTP (GET). La classe va dichiarata global, e restituiamo un elenco di account standard con una semplice query.

Codice Apex: una risorsa REST con un metodo GET che interroga gli Account e restituisce l'elenco con la serializzazione predefinita

Esempio 2: wrapper con risposta JSON

Per controllare i dati restituiti al client, usiamo un oggetto di risposta. Invece di restituire un elenco di SObject, restituiamo un elenco di oggetti di risposta personalizzati, una rappresentazione leggera di un cliente con solo ID e nome.

Codice Apex: un metodo GET che costruisce un oggetto di risposta con un elenco di clienti

Esempio 3: aggiunta di parametri

I parametri sono essenziali quando ti servono i dati di un cliente specifico. Leggendo RestContext.params puoi recuperare l’ID del cliente e usarlo nella clausola WHERE della SOQL per filtrare i dati.

Codice Apex: un metodo GET che legge un parametro customerid dalla richiesta e restituisce quel cliente in un oggetto di risposta

Esempio 4: POST per l’inserimento

Quando devi scrivere dati, usi un metodo POST. In questo esempio creiamo un oggetto di risposta e un oggetto di richiesta. L’oggetto di richiesta riceve un cliente con un nome, e usiamo il serializzatore JSON per serializzare la richiesta in una classe specifica. Dopo aver creato e inserito un nuovo account, viene restituito uno stato di successo.

Codice Apex: un metodo POST che analizza il corpo della richiesta, inserisce un Account e restituisce uno stato di successo o di errore

Esempio 5: restituzione dei messaggi di errore

Questo esempio è simile all’esempio 4, ma include la gestione degli errori. In caso di eccezione, l’errore viene intercettato, aggiunto a un elenco, e il codice di stato viene impostato a 500 (o al numero che preferisci).

Codice Apex: il metodo POST con gestione degli errori, che restituisce il messaggio di errore e il codice di stato HTTP 500

Conclusione

Con questi esempi abbiamo mostrato i mattoni di base per creare servizi web Apex personalizzati in Salesforce. Partendo da una semplice richiesta GET, abbiamo aumentato gradualmente la complessità, introducendo parametri, richieste POST e gestione degli errori.

Resta sintonizzato

Grazie per la lettura, non vedo l’ora di condividere presto con te altre avventure piene di conoscenza! Resta sintonizzato qui su www.SteveTechArc.com e sul canale YouTube @SteveTechArc (opens in a new tab). Iscriviti e approfondisci la tua comprensione di Salesforce e di come integrarlo con altri sistemi.

Contribuire a cambiare il mondo condividendo conoscenze sull’integrazione con altri architetti e con chi è in cammino per diventarlo!

Trascrizione realizzata con l’aiuto dell’IA

STA 1.8