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

Обзор пользовательских веб-сервисов
Мы рассмотрим пять примеров пользовательских веб-сервисов:
GET со стандартным списком SObject: Получение данных с помощью стандартного списка SObject.
Обертка с ответом JSON: Улучшаем запрос GET, оборачивая его в ответ JSON.
Добавление параметров: Добавляем в запрос GET параметры, чтобы получать более конкретные данные.
POST для вставки: Реализуем запрос POST для вставки данных.
Возврат сообщений об ошибках: Правильно обрабатываем и возвращаем сообщения об ошибках.
Реализация пользовательских веб-сервисов
Пример 1: GET со стандартным списком SObject
В этом примере мы определяем ресурс REST с пользовательским URI и указываем HTTP-глагол (GET). Класс нужно объявить как global, а возвращаем мы список стандартных организаций с помощью простого запроса.

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

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

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

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

Заключение
На этих примерах мы показали основные строительные блоки для создания пользовательских веб-сервисов Apex в Salesforce. Начав с простого запроса GET, мы постепенно наращивали сложность, добавляя параметры, запросы POST и обработку ошибок.
Следите за новостями
Спасибо, что дочитали! Скоро поделюсь с вами новыми приключениями, полными знаний. Следите за новостями здесь, на www.SteveTechArc.com, и на YouTube-канале @SteveTechArc (opens in a new tab). Подписывайтесь и углубляйте свое понимание Salesforce и того, как интегрировать его с другими системами.
Помогаем менять мир, делясь знаниями об интеграции с коллегами-архитекторами и теми, кто идет по пути к профессии архитектора!
Расшифровка сделана с помощью ИИ
STA 1.8