Переведено ИИ. Сообщество еще не проверило перевод. Читать на английском

Блог · 18 сентября 2023 г. · Steve Simpson · Интеграция

Веб-сервисы Apex: строительные блоки для веб-волшебников

Введение:

В этой статье я подробно расскажу о создании пользовательских веб-сервисов Apex в Salesforce. Они необходимы, когда внешнему процессу нужно читать или записывать данные в Salesforce, а стандартного REST API недостаточно. Мы разберем пять примеров с постепенно растущей сложностью — от стандартных запросов до обновлений.

Схема: пять примеров пользовательских веб-сервисов Apex, вызываемых из Postman: GET, возвращающий список записей, GET с объектом ответа, GET с параметром, POST и POST с ошибкой

Обзор пользовательских веб-сервисов

Мы рассмотрим пять примеров пользовательских веб-сервисов:

GET со стандартным списком SObject: Получение данных с помощью стандартного списка SObject.

Обертка с ответом JSON: Улучшаем запрос GET, оборачивая его в ответ JSON.

Добавление параметров: Добавляем в запрос GET параметры, чтобы получать более конкретные данные.

POST для вставки: Реализуем запрос POST для вставки данных.

Возврат сообщений об ошибках: Правильно обрабатываем и возвращаем сообщения об ошибках.

Реализация пользовательских веб-сервисов

Пример 1: GET со стандартным списком SObject

В этом примере мы определяем ресурс REST с пользовательским URI и указываем HTTP-глагол (GET). Класс нужно объявить как global, а возвращаем мы список стандартных организаций с помощью простого запроса.

Код Apex: ресурс REST с методом GET, который запрашивает организации (Account) и возвращает список со стандартной сериализацией

Пример 2: обертка с ответом JSON

Чтобы управлять данными, отправляемыми клиенту, мы используем объект ответа. Вместо списка SObject мы возвращаем список пользовательских объектов ответа — облегченное представление клиента только с ID и именем.

Код Apex: метод GET, который формирует объект ответа со списком клиентов

Пример 3: добавление параметров

Параметры нужны, когда требуются данные конкретного клиента. Прочитав RestContext.params, можно получить ID клиента и использовать его в условии WHERE запроса SOQL, чтобы отфильтровать данные.

Код Apex: метод GET, который читает из запроса параметр customerid и возвращает этого клиента в объекте ответа

Пример 4: POST для вставки

Когда нужно записать данные, используется метод POST. В этом примере мы создаем объект ответа и объект запроса. Объект запроса получает клиента с именем, а с помощью JSON-сериализатора мы десериализуем запрос в определенный класс. После создания и вставки новой организации возвращается статус успеха.

Код Apex: метод POST, который разбирает тело запроса, вставляет организацию (Account) и возвращает статус успеха или ошибки

Пример 5: возврат сообщений об ошибках

Этот пример похож на пример 4, но с обработкой ошибок. Если возникает исключение, ошибка перехватывается, добавляется в список, а код состояния устанавливается в 500 (или любое другое число на ваш выбор).

Код Apex: метод POST с обработкой ошибок, возвращающий сообщение об ошибке и код состояния HTTP 500

Заключение

На этих примерах мы показали основные строительные блоки для создания пользовательских веб-сервисов Apex в Salesforce. Начав с простого запроса GET, мы постепенно наращивали сложность, добавляя параметры, запросы POST и обработку ошибок.

Следите за новостями

Спасибо, что дочитали! Скоро поделюсь с вами новыми приключениями, полными знаний. Следите за новостями здесь, на www.SteveTechArc.com, и на YouTube-канале @SteveTechArc (opens in a new tab). Подписывайтесь и углубляйте свое понимание Salesforce и того, как интегрировать его с другими системами.

Помогаем менять мир, делясь знаниями об интеграции с коллегами-архитекторами и теми, кто идет по пути к профессии архитектора!

Расшифровка сделана с помощью ИИ

STA 1.8