Обработка запросов
Обработчики:
-
Имя: AddToCart
Метод: ДобавитьВКорзину
// Структура, описывающая параметры метода обработчика
структура Item
пер Sku: Число
пер Name: Строка
пер Price: Число
;
//Обработчик операции сервиса
метод ДобавитьВКорзину(Item: Item, Count: Число)
// Метод, написанный разработчиком
;
Перегрузка методов-обработчиков SOAP-сервиса запрещена (в модуле SOAP-сервиса не может быть двух методов с одним и тем же именем). Иначе будет выброшена ошибка публикации проекта. Если метод-обработчик не задан, то также будет выброшена ошибка публикации проекта.
Обращение к операциям SOAP-сервиса осуществляется при помощи HTTP POST запроса. При обработке запроса в происходит следующее:
- По URL запроса находится нужный SOAP-сервис;
- Выполняется аутентификация по HTTP-заголовку Authorization;
- По HTTP-заголовку SOAPAction выбирается операция SOAP-сервиса;
- Входящее SOAP-сообщение десериализуется;
- Из входящего SOAP-сообщения формируются параметры на встроенном языке для передачи в обработчик;
- Вызывается метод обработчика, указанный в свойстве Метод. Значения параметров получаются из SOAP-сообщения, отправленного в сервис клиентом.
Если будет выполнен вызов неизвестной операции сервиса (в свойствах SOAP-сервиса нет обработчика с таким именем), то вернется результат HTTP 404 Not Found.
Если при обработке запроса выбрасывается исключение (в том числе и не обработанное прикладным кодом), формирует Fault SOAP-ответ и HTTP-код ответа 500 (Internal server error).